从红宝石的新手返回命令

时间:2012-08-01 06:48:35

标签: ruby

我第一次尝试返回功能。以下代码行显示无输出。我试图找出我的代码有什么问题。我很感激你的意见。

def favourite_drink name
   if name == "tea"
     return "I love tea too!"
   end

   if name == "lemonade"
     return "Stuff's refreshing, isn't it?"
   end

   if name == "coffee"
     return "Dude, don't have too much of that stuff!"
   end

   "So what exactly is it that you like? (scratches head)"
end  

favourite_drink "tea"

3 个答案:

答案 0 :(得分:2)

没有输出,因为您没有输出函数的结果。

puts favourite_drink("tea")

输出:

"I love tea too!"

你可能在irb中试验过Ruby,它是一个REPL - 一个读取 - 评估 - 打印循环。在irb中,如果您输入了代码,则会看到:

 => "I love tea too!"

因为irb会自动显示您键入的内容的值。在实际运行程序时,您需要专门要求输出您想要打印的内容。

答案 1 :(得分:1)

到目前为止,我不是Ruby wizz,但我认为你错过了一段实际上会为你输出的代码。你有一些字符串,但它们仍然只是:字符串。要将它们实际发送到屏幕,您需要putsprint等命令。

请参阅:http://en.wikibooks.org/wiki/Ruby_Programming/Strings

puts 'Hello world'

答案 2 :(得分:1)

要定位你的方法,为了显示字符串"我也爱茶!"在输出屏幕(您的终端)上,您需要为您的方法提供准确的说明。即,你需要指导你的方法' favourite_drink'采取论点"茶"并根据方法中描述的结构与它搭配使用' favourite_drink'

  

把favourite_drink"茶"

以上将解决您的问题。