如何在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- NoSQL数据库学习笔记之 NoSQL百家争鸣
- 使用高性能xml序列化框架jibx作为spring mvc的xml view
- Oracle数据库补丁管理及实战_超越OCP精通Oracle视频课程培训
- [Cocos2d-x 升级IOS9错误解决方案]Unexpected CFBundleExec
- 【NoSql】Redis实践篇-简单demo实现(一)
- 采用pull解析xml文件
- c – Cast一个原始类型的指针到A结构指针 – 对齐和填充?
- c – std :: thread为什么对象被复制两次?
- flexibility of openstack(1)
- (C/C++) 32bit \ 64bit 記憶體空間