# Return value problem

**URL:** <https://www.ruby-forum.com/t/return-value-problem/192750>\
**Category:** Ruby\
**Created:** [August 4, 2010, 11:40pm UTC](https://www.ruby-forum.com/t/return-value-problem/192750 "2010-08-04T23:40:02Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![amiref](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/41988e/32.png) [@amiref](https://www.ruby-forum.com/u/amiref)\
**Post date:** [August 4, 2010, 11:40pm UTC](https://www.ruby-forum.com/t/return-value-problem/192750/1 "2010-08-04T23:40:02Z")

</div>

Hi  
What is happen for return value in these 2 codes ?  
(Please analysis for me result of these 2 codes)

* * *

def test1(name)  
puts “Hello”+name  
end

def test2(name)  
puts “Hello”+name  
1+1  
end

return\_value1 = test1(“amir”)  
puts return\_value1

return\_value2 = test2(“amir”)  
puts return\_value2

* * *

---

<div class="post-metadata">

**Author:** ![amiref](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/41988e/32.png) [@amiref](https://www.ruby-forum.com/u/amiref)\
**Post date:** [August 4, 2010, 11:53pm UTC](https://www.ruby-forum.com/t/return-value-problem/192750/2 "2010-08-04T23:53:38Z")

</div>

If you don’t explicitly return anything, ruby returns the value of the  
last expression.

---

<div class="post-metadata">

**Author:** ![amiref](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/41988e/32.png) [@amiref](https://www.ruby-forum.com/u/amiref)\
**Post date:** [August 5, 2010, 1:46am UTC](https://www.ruby-forum.com/t/return-value-problem/192750/3 "2010-08-05T01:46:36Z")

</div>

On Wed, Aug 4, 2010 at 3:52 PM, Alex S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

---

<div class="post-metadata">

**Author:** ![amiref](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/41988e/32.png) [@amiref](https://www.ruby-forum.com/u/amiref)\
**Post date:** [August 5, 2010, 1:48am UTC](https://www.ruby-forum.com/t/return-value-problem/192750/4 "2010-08-05T01:48:57Z")

</div>

On Wed, Aug 4, 2010 at 5:40 PM, Amir E. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> What is happen for return value in these 2 codes ?  
> (Please analysis for me result of these 2 codes)

$ cat i.rb  
def test1(name)  
puts “Hello”+name  
end

def test2(name)  
puts “Hello”+name  
1+1  
end

return\_value1 = test1(“amir”)  
p return\_value1

return\_value2 = test2(“amir”)  
p return\_value2

$ ruby i.rb  
Helloamir  
nil  
Helloamir  
2
