【发布时间】:2013-05-09 07:06:23
【问题描述】:
当用户的输入为 42 时,我试图停止用户的输入。
我正在研究的网站上的正确答案是:
while line = gets
break if (/42/ =~ line)
x << line
end
我试过的不起作用的代码是:
while line = gets.chomp
break if (line == 42)
x << line
end
为什么会这样?我是否遗漏了我可以在 if 声明中使用的一些限制?
【问题讨论】:
-
由于您是新手,这不会有太大帮助,但请注意 Ruby 是一种语言,由于块,声明性代码是可能的。我认为这样的事情非常简洁:
lines = repeat { gets }.take_while { |line| line.strip != "42" }(填补缺失方法的空白;-)) -
谢谢!如此明显,在我的鼻子底下。我不知何故假设 Ruby 会神奇地将 42 识别为字符串。