Ruby 为什么在if条件下,除了false之外,一切都变为真?

Ruby 为什么在if条件下,除了false之外,一切都变为真?,ruby,if-statement,Ruby,If Statement,为什么在使用if条件检查时,除了false之外,所有true、numeric、float和string都变为true?示例: puts "Hello World" if 0 # => Hello World puts "Hello World" if 1 # => Hello World puts "Hello World" if 2 # => Hello World puts "Hello World" if 200 # => Hello World puts "Hel

为什么在使用if条件检查时,除了false之外,所有true、numeric、float和string都变为true?示例:

puts "Hello World" if 0 # => Hello World
puts "Hello World" if 1 # => Hello World
puts "Hello World" if 2 # => Hello World
puts "Hello World" if 200 # => Hello World
puts "Hello World" if "Ruby" # => Hello World
puts "Hello World" if "Rails" # => Hello World
puts "Hello World" if true # => Hello World

puts "Hello World" if false # => nil

在Ruby中,除了
false
nil
之外,所有的计算结果都是
true


PS:这里没有隐藏的目标,它只是一种语言设计选择。

在Ruby中,除了
false
nil
之外,所有东西的计算结果都是
true


附言:这里没有隐藏的目标,只是语言设计的选择。

你的假设是错误的。不是说除了
false
之外的所有内容都被评估为truthy。@sawa抱歉,它的拼写错误。修正了:“…
nil
false
为假值,
true
和任何其他对象为真值”您的假设是错误的。不是说除了
false
之外的所有内容都被评估为truthy。@sawa抱歉,它的拼写错误。修正:“…
nil
false
为假值,
true
和任何其他对象为真值”