如果有以下陣列差工作時不變量
a = [1,2,3]
b = [3,4,5]
a&b #=> [3]
b - a&b #=> [4,5]
b - a #=> [4,5]
爲什麼這項工作
[1,2,3] - [3] #=> [1,2]
,但不是這個
a - a&b #=> [] ??
如果有以下陣列差工作時不變量
a = [1,2,3]
b = [3,4,5]
a&b #=> [3]
b - a&b #=> [4,5]
b - a #=> [4,5]
爲什麼這項工作
[1,2,3] - [3] #=> [1,2]
,但不是這個
a - a&b #=> [] ??
因爲-
具有更高的優先級,這裏比&
:
a - (a&b)
# => [1, 2]
whaaaaaa,這不應該符合數學precendece? – 2014-08-28 09:07:45
@NickGinanto:在數學中,混合算術運算符和布爾運算符是沒有意義的。如果它符合「數學優先級」,它很可能是一個「TypeError」。 – 2014-08-28 10:34:29
2.1.2 :006 > a - a&b
=> []
2.1.2 :007 > a - (a&b)
=> [1, 2]
您可以從here得到紅寶石運算符優先級表。
好Goggly!我喜歡它。 :-) – 2014-08-28 10:04:53