我怎样才能避免Ruby中的真实性?
发布时间:2020-12-16 19:33:02 所属栏目:百科 来源:网络整理
导读:是否有任何标准方法可以避免 Ruby中的真实性,或者我是否需要推出自己的解决方案,例如 class FalseClass def to_bool self endendclass TrueClass def to_bool self endendtrue.to_bool # = truefalse.to_bool # = falsenil.to_bool # = NoMethodError42.to_b
是否有任何标准方法可以避免
Ruby中的真实性,或者我是否需要推出自己的解决方案,例如
class FalseClass def to_bool self end end class TrueClass def to_bool self end end true.to_bool # => true false.to_bool # => false nil.to_bool # => NoMethodError 42.to_bool # => NoMethodError 背景:我知道to_bool会违背Ruby的宽容性质,但我正在玩三元逻辑,并且想避免意外地做类似的事情 require "ternary_logic" x = UNKNOWN do_something if x 我正在使用三元逻辑,因为我正在编写一个flatmate共享网站的解析器(用于个人而非商业用途)并且某些字段可能缺少信息,因此不知道该地方是否存在是否符合我的标准.但是,我会尝试限制使用三元逻辑的代码量. 解决方法
在Ruby中不可能影响真实性或虚假性.零和假都是假的,其他一切都是真的.
它是每两年左右出现的一个功能,但总是被拒绝. (由于我个人认为没有说服力的原因,但我不是那个做主的人.) 您必须实现自己的逻辑系统,但不能禁止某人在未知值上使用Ruby的逻辑运算符. I re-implemented Ruby’s logic system once,为了好玩并展示它可以做到.将其扩展为三元逻辑应该相当容易. (当我写这篇文章时,我实际上从RubySpec和ported them to my implementation开始进行一致性测试,并且它们都通过了,所以我相信它与Ruby的语义相匹配.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |