【发布时间】:2016-07-13 17:41:00
【问题描述】:
我有一个值,它将是以下四种情况之一:boolean true、boolean false、字符串“true”或字符串“false”。如果它是字符串,我想将字符串转换为布尔值,否则保持不变。换句话说:
“真”应该变成真
“假”应该变成假
真实应该保持真实
假应该保持假
【问题讨论】:
-
结果是否有是
true或false这两个值之一,或者如果结果为真或假就足够了吗?如果是后者,那么false已经是假的,true和'true'都是真值,所以结果不正确的唯一值是'false':if input == 'false' then true else input end应该这样做。 -
Jorg 的评论很棒,但是我认为对于某些应用程序来说,布尔值必须是真或假,而不仅仅是一个真假值。
-
Emery,如果你需要返回一个布尔值,你可以在 @Jörg 的表达式前面加上两个“not”:
!!(if input == 'false' then true else input end)。第二个!将返回值转换为与您想要的相反的布尔值;第一个!然后进行更正。这个“把戏”由来已久。不是每个人都喜欢它。
标签: ruby string boolean type-conversion