[英]what does nil mean/represent here?
以下是irb
shell中的简单语句。 输出中的nil
是什么意思? 为什么它将它与if
块中的print语句一起使用?
irb(main):062:0> if(x==20 && y==30)
irb(main):063:1> print("if statement working !")
irb(main):064:1> else
irb(main):065:1* print("else statement working !!")
irb(main):066:1> end
if statement working !=> nil # what does nil represent here ?
在Ruby中,所有表达式都返回值,即使它为nil
。 块和方法仅返回最后计算的表达式的值。 有许多有效使用此方法的方法。 例如,这就是通常不使用显式return
的原因。 另外,您可以执行以下操作:
print if x == 20 && y == 30
'if statement working!'
else
'else statement working!'
end
关于您的示例: irb
除了按照您的指示打印字符串外,还将显示从if-else块接收到的值。 由于print
始终返回nil
,因此两个分支将返回相同的值。
这意味着您的if块不返回值(实际上可以返回值)。 例如,以下内容完全合法且可行:
foo = if bar > 10
42
else
0
end
# now, foo is either 42 or 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.