我和红宝石打过来,我穿过&!
来了,所以我用它打了一下周围:Ruby&! (和爆炸)操作员
true &! true #=> false
true &! false #=> true
true &! nil #=> true
true &! {:test=>:foo} #=> false
false &! true #=> false
false &! false #=> false
false &! nil #=> false
false &! {:test=>:foo} #=> false
nil &! true #=> false
nil &! false #=> false
nil &! nil #=> false
nil &! {:test=>:foo} #=> false
貌似value && !value
,到目前为止,但...
{:test=>:foo} &! true
给了一个错误
NoMethodError: undefined method `&' for {:test=>:foo}:Hash
from (irb):23:in `block (2 levels) in irb_binding'
from (irb):23:in `each'
from (irb):23:in `block in irb_binding'
from (irb):23:in `each'
from (irb):23
from /usr/local/bin/irb:11:in `<main>'
所以,我以为这是2个不同的运营商?如果是这样,他们做什么?我不认为我见过他们。用于比较值是否安全?
PS:这是我用来测试这个脚本:
test.each {|v| test.each{ |v2| print "#{v.inspect} &! #{v2.inspect} #=> " ; p v &! v2 }}
@ penne12这是你想知道的吗? – sawa
@sawa我真的很感激这个事实,答案包括sexp - 帮助我更好地理解它 - 你的回答也很有帮助, –