为什么方法声明在ruby中评估为nil?

Bha*_*aju 1 ruby methods

定义一个方法似乎没有评估为真值,因为可以通过将一个放入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

Doo*_*nob 5

它实际上评估为nil.这是有道理的; 为什么方法创建会返回什么?

irb(main):001:0> def test; print 'test'; end
=> nil
Run Code Online (Sandbox Code Playgroud)

但是,它必须返回一些东西,所以返回"没有"将返回nil.