如何在Ruby中设置布尔默认值?

前端之家收集整理的这篇文章主要介绍了如何在Ruby中设置布尔默认值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于其他类型的变量,我使用|| =,但这对布尔值不起作用(即使x先前已将x指定为false,x || = true也会将x指定为true).

我认为这会奏效:

x = true unless defined?(x)

但事实并非如此:出于某种原因,它将x分配给nil. (这里的解释将不胜感激.)

我知道一种有效的方法

unless defined?(x)
  x = true
end

但它相当冗长.是否有更简洁的方法将默认值赋给Ruby中的布尔变量?

解决方法

你必须定义?首先,否则解析器到达x =然后在运行之前定义x(使其为零),除非:
defined?(x) or x = true
x  #=> true
x = false
defined?(x) or x = true
x  #=> false

执行if / unless块(而不是post-if /除非单行)也可以:

unless defined?(x)
  x = true
end
x  #=> true
x = false
unless defined?(x)
  x = true
end
x  #=> false

猜你在找的Ruby相关文章