觸發器運算子
觸發器運算子 ..
在條件語句中的兩個條件之間使用:
(1..5).select do |e|
e if (e == 2) .. (e == 4)
end
# => [2, 3, 4]
條件評估為 false
,直到第一部分變為 true
。然後它評估為 true
,直到第二部分變為 true
。之後再次切換到 false
。
此示例說明了所選內容:
[1, 2, 2, 3, 4, 4, 5].select do |e|
e if (e == 2) .. (e == 4)
end
# => [2, 2, 3, 4]
觸發器操作符僅適用於 ifs(包括 unless
)和三元運算子。否則,它被視為範圍運算子。
(1..5).select do |e|
(e == 2) .. (e == 4)
end
# => ArgumentError: bad value for range
它可以從 false
切換到 true
並向後多次切換:
((1..5).to_a * 2).select do |e|
e if (e == 2) .. (e == 4)
end
# => [2, 3, 4, 2, 3, 4]