Ruby 为什么在if条件下,除了false之外,一切都变为真?
为什么在使用if条件检查时,除了false之外,所有true、numeric、float和string都变为true?示例: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
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
和任何其他对象为真值”