加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:23:33 所属栏目:百科 来源:网络整理
导读:对于其他类型的变量,我使用|| =,但这对布尔值不起作用(即使x先前已将x指定为false,x || = true也会将x指定为true). 我认为这会奏效: x = true unless defined?(x) 但事实并非如此:出于某种原因,它将x分配给nil. (这里的解释将不胜感激.) 我知道一种有效的
对于其他类型的变量,我使用|| =,但这对布尔值不起作用(即使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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读