如果最后评估的语句是 If 语句,Ruby 中会返回什么

2023-12-19

我的理解是 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(使用前将#替换为@)

如果最后评估的语句是 If 语句,Ruby 中会返回什么 的相关文章

随机推荐