我的理解是 ruby 返回函数中计算的最后一个语句。如果函数以一个结尾怎么办if
评估结果为 false 的语句
def thing(input)
item = input == "hi"
if item
[]
end
end
puts thing("hi").class #> Array
puts thing("not hi").class #> NilClass
我喜欢这个功能(返回nil
如果该陈述是错误的),但为什么不是false
返回(从分配到item
)?
If your if
语句不会导致任何代码运行,它会返回nil
,否则返回已运行代码的值。irb
是一个很好的工具来尝试这些东西:
irb(main):001:0> i = if false then end
=> nil
irb(main):002:0> i = if true then end
=> nil
irb(main):007:0> i = if false then "a" end
=> nil
irb(main):008:0> i = if false then "a" else "b" end
=> "b"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)