Return values

In Ruby, a method always return exactly one single thing (an object).

The returned object can be anything, but a method can only return one thing, and it also always returns something.

Every method always returns exactly one object.

The object returned could be the object nil, meaning “nothing”, but it still is an object. Also, in order to return a bunch of things at once we could return an Array that holds the things that we are interested in, but the Array itself is just one object.

Also note that in Ruby we do not have to use the statement return, as in other languages. In fact, most Ruby code does not use the keyword return at all.

This is extremely convenient, but it is also something we need to learn:

If we don’t do anything else, then a method will return the value that was returned from the last evaluated statement. Most often, this is the last line in the method body.

This is important to understand. Please read that sentence again:

If we don’t do anything else, then a method will return the return value of the last evaluated statement.

In our example method …

def add_two(number)
  number + 2

p add_two(3)

… the last evaluated statement is the expression number + 2. Since in our example number is assigned 3 this expression returns the number 5, and that is why the value returned by our method also is 5.

If, in certain cases, we do want to “return” from the method early, then we can still do this using the return statement. For now, you don’t need to worry about this case.

So, let’s move on :)