我正在学习ruby并完成基础知识。在玩了条件后,我做了以下代码:
x = 10
z = 10
if x==10 && (puts "wow" if x == z)
puts "hello"
end
当我跑步时,我只有“哇”。有人可以解释为什么“hello”从未打印过吗?
谢谢。
答案 0 :(得分:3)
因为puts
返回nil
:
def test_method
puts "test"
end
t = test_method #=> "test"
p t #=> nil
这意味着if x==10 && nil
将被评估为false
。因此它永远不会进入条件并打印“你好”。
答案 1 :(得分:3)
puts
的返回值实际上是零。
基本上,声明所说的是
if x==10 && nil
puts "hello"
end
nil
的值为false
。只要条件中出现错误,表达式就会自动评估为false。因此,代码块将不会被执行。