官术网_书友最值得收藏!

What does a Ruby method return?

Learning what a method returns is critical in any programming language. Ruby specifically has a unique way of working with returned values. In this section, you are going to learn what a method returns.

I'm going to use the same method we created in the last section, which is as follows:

def baseball_team_list 
p ["A's", "Angels", "Astros"]
end

baseball_team_list

In other traditional programming languages, you have to explicitly use the return word to tell the method to return the values you want. For example, you would have to type something like this:

def second_baseball_team_list 
return p ["A's", "Angels", "Astros"]
end

second_baseball_team_list

Now, if you hit run, this code will get executed without any errors. However, Ruby does not need an explicit declaration of return like this because it is smart enough to know that it has to return the last line of code inside the method. Also, using the return word is considered a poor practice for the following reasons:

  • We want to avoid using extra code when it's not needed.
  • It may confuse experienced Ruby developers. The only time you want to use the return word is when you want a method to end prematurely.

You can use the return word as a part of a conditional, so that the method returns one set of values when the condition is met, and another set when it is not met. Consider this example:

def second_baseball_team_list 
x = 10
return ["A's", "Angels", "Astros"] if x == 10
["yankees", "Mets"]
end

p second_baseball_team_list

If you run this method, it returned the "A's", "Angels", "Astros" values because the value of x is 10. Also, if you notice, it skipped the second set of teams entirely because when the condition was met, the program simply returns the value and exits. This means that when you have the return word, the remaining part of the method does not get executed. Now, if I change the value of x to 15, then it prints "yankees" and "Mets".

So, this is the one time you can use the return word in Ruby.

主站蜘蛛池模板: 涟水县| 柞水县| 芦溪县| 利川市| 扎鲁特旗| 尚志市| 遵义县| 金乡县| 女性| 绩溪县| 商河县| 宜城市| 广东省| 岳池县| 襄垣县| 射阳县| 普陀区| 龙井市| 泌阳县| 巧家县| 和平县| 赤峰市| 宁晋县| 尼木县| 阆中市| 桂东县| 扬州市| 昌黎县| 石嘴山市| 扶绥县| 滨州市| 敦化市| 昂仁县| 龙游县| 贵德县| 永川市| 南投县| 平利县| 禹城市| 新绛县| 甘洛县|