觸發器運算子
觸發器運算子 .. 在條件語句中的兩個條件之間使用:
(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]