ruby – 带有“已定义?”的三元表达式返回“表达式”而不是值?
发布时间:2020-12-17 04:29:44 所属栏目:百科 来源:网络整理
导读:我是 Ruby和Rails的新手,但即使在搜索堆栈溢出和谷歌之后我也找不到答案. 我有一个简单的Ruby简写if语句应该返回一个整数,如下所示: # in the context of this erb document `amount` is defined as 5.@c = ( defined? amount ? amount : r( 1,4 ) ) r()是
我是
Ruby和Rails的新手,但即使在搜索堆栈溢出和谷歌之后我也找不到答案.
我有一个简单的Ruby简写if语句应该返回一个整数,如下所示: # in the context of this erb document `amount` is defined as 5. @c = ( defined? amount ? amount : r( 1,4 ) ) r()是一个自定义辅助函数,在这种情况下返回1和4之间的随机数. 我打算这样做的方法是,如果定义了金额,那么使用定义为金额的数字,否则生成1到4之间的随机数,然后使用它. 当打印出@c时,Ruby输出表达式而不是数字. 我需要做些什么才能让我按照我的意图工作,我做错了什么? 非常感谢您的阅读! 解决方法
界定?是绑定金额?金额:r(1,4)所以相当于:
defined?(amount ? amount : r(1,4)) 你可能想要: defined?(amount) ? amount : r(1,4) 实际上,赔率是|| r(1,4),或amount.nil? ? r(1,4):金额会更符合你想要的,因为我觉得你不想要这个: 1.9.3p194 :001 > defined?(amount) => nil 1.9.3p194 :002 > amount = nil => nil 1.9.3p194 :003 > defined?(amount) => "local-variable" …在这种情况下,@ c将为nil – 已定义变量的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |