为什么直到修饰符返回为零?

时间:2017-10-18 03:46:48

标签: ruby

通过IRB会议:

words = []
#=> []
word||=""
#=> ""
words.push(word) until(word=gets.chomp)==""

#=> nil
words
#=> []

我认为word设置为"",然后被输入的用户输入覆盖,导致word设置为{{1}再次。

我误解了"" word的结果是什么?

1 个答案:

答案 0 :(得分:4)

像ruby这样的语言由表达式组成。每个表达式都有一个返回值。 until关键字是一个流控制工具,允许执行表达式“直到”满足某些条件。似乎statement until condition形式的表达式返回nil,无论statement的返回值是什么。

在这种特殊情况下,您获得的nil与分配给ẁord

的值无关