是Ruby的逻辑运算符方法,就像二元运算符一样?
发布时间:2020-12-17 02:38:47 所属栏目:百科 来源:网络整理
导读:我想知道,是,和||,还是基本核心不可更改的功能(如在其他语言中,例如:php),或者它们是对象方法,如 =但定义了一些神奇的方式 关于我的思想特征的更多细节: [] [10]# = [][].([10])# = []"aaa". 10# NoMethodError: undefined method `' for "aaa":String 注
我想知道,是&&,和||,还是基本核心不可更改的功能(如在其他语言中,例如:php),或者它们是对象方法,如& < =>但定义了一些神奇的方式
关于我的思想特征的更多细节: [] & [10] # => [] [].&([10]) # => [] "aaa".& 10 # NoMethodError: undefined method `&' for "aaa":String 注意它说未定义的方法 ……当然可以. true.& false # => false ……但你做不到: true.&& false # SyntaxError: 所以,如果有可能的话 class String # monkey patch. If you googled this don't use this in real world,use ruby mixins insted def &(right_side) # do something meaningfull right_side end end "aaa".& 10 # => 10 # ta-da! 有可能做(有一些魔法): class String # monkey patch. If you googled this don't use this in real world,use ruby mixins insted def &&(right side) # do something meaningfull right side end end # => SyntaxError: (irb):13: syntax error,unexpected keyword_end 谢谢 解决方法
这些是无法(重新)定义的运算符:
>&&,|| (AND,OR) 其他,如(不完整列表)!,?,–,**,*,/,%,>>,==,!=作为方法实现,可以重新定义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |