定义一个方法似乎没有评估为真值,因为可以通过将一个放入if条件来检查:
if(def some_method; puts "random text"; end) then
puts "declaration evaluates to true"
else
puts "declaration evaluates to false"
end
# => declaration evaluates to false
Run Code Online (Sandbox Code Playgroud)
方法声明为什么/如何评估nil?
它实际上评估为nil.这是有道理的; 为什么方法创建会返回什么?
irb(main):001:0> def test; print 'test'; end
=> nil
Run Code Online (Sandbox Code Playgroud)
但是,它必须返回一些东西,所以返回"没有"将返回nil.