用puts打印方法中的最后一行

时间:2014-04-16 10:19:03

标签: ruby

鉴于

def sayMoo numberOfMoos
  puts 'mooooooo...'*numberOfMoos
  'yellow submarine'
end

我无法理解为什么

x = sayMoo 2
puts x

给了我

mooooooo...mooooooo...
yellow submarine

sayMoo 2

给了我

mooooooo...mooooooo...

我希望有人可以解释一下。

2 个答案:

答案 0 :(得分:2)

调用函数puts moooooos。

第一个例子puts函数的返回值,它是黄色潜水艇,除此之外。

相反,第二个只是调用函数。

答案 1 :(得分:0)

puts是一个向控制台显示给定字符串(或对象)的方法(默认情况下)。你的方法是调用它来显示' moooo ... mooo',然后返回最后执行的表达式的结果,在这种情况下它返回字符串'黄色潜水艇'。因此当你这样做时:

x = sayMoo 2

您正在执行您的方法,该方法首先显示' moo'消息,然后分配“yallow submarine'变量x,您可以使用puts来显示。如果您这样做:

sayMoo 2
执行

方法,但方法返回的值丢失且未显示。