Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 为什么这个修饰符返回nil?_Ruby - Fatal编程技术网

Ruby 为什么这个修饰符返回nil?

Ruby 为什么这个修饰符返回nil?,ruby,Ruby,本次IRB会议: words = [] #=> [] word||="" #=> "" words.push(word) until(word=gets.chomp)=="" #=> nil words #=> [] 我认为word被设置为”,然后被输入的用户输入覆盖,导致word再次被设置为” 什么是我的误解导致word成为nil 像ruby这样的语言是由表达式组成的。每个表达式都有一个返回值。till关键字是一种流控制工具,允许执行表达式“直到”满足特定条件。看起

本次IRB会议:

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

#=> nil
words
#=> []
我认为
word
被设置为
,然后被输入的用户输入覆盖,导致
word
再次被设置为


什么是我的误解导致
word
成为
nil

像ruby这样的语言是由表达式组成的。每个表达式都有一个返回值。
till
关键字是一种流控制工具,允许执行表达式“直到”满足特定条件。看起来像是
语句形式的表达式,直到条件
返回
nil
,而不管
语句
的返回值是什么


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

像ruby这样的语言是由表达式组成的。每个表达式都有一个返回值。
till
关键字是一种流控制工具,允许执行表达式“直到”满足特定条件。看起来像是
语句形式的表达式,直到条件
返回
nil
,而不管
语句
的返回值是什么


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

word
不是
nil
;然后在提示下尝试输入
word
word | |=“”#=>第三个会话中的true
。甚至你在第二个会话中的结果也与之相反。想想看:
word
必须是
,否则直到
循环不会停止。
word
不是
nil
;然后在提示下尝试输入
word
word | |=“”#=>第三个会话中的true
。甚至你在第二个会话中的结果也与之相反。想想看:
word
必须是
,否则直到
循环就不会停止。这就像
put
总是返回
nil
一样,即使它做了一些事情。这就是它的工作原理。是的,或多或少。区别在于,
put
是一种可以被覆盖以返回其他内容的方法,而
until
是语言中内置的关键字。哦,绝对是这样。我的意思是,返回值并不意味着它什么都没做。有些函数做了大量的工作并返回
nil
以避免混乱。从“像
while
循环,直到
循环的结果是
nil
,除非使用
break
。”这就像
put
总是返回
nil
,即使它做了一些事情。这就是它的工作原理。是的,或多或少。区别在于,
put
是一种可以被覆盖以返回其他内容的方法,而
until
是语言中内置的关键字。哦,绝对是这样。我的意思是,返回值并不意味着它什么都没做。有些函数做了大量的工作,并返回
nil
以避免混乱。从“像
while
循环一样,
直到
循环的结果是
nil
,除非使用
break
。”