翻转运算符

计算机编程中，翻转（flip-flop）运算符是指一种运算符，当第一个操作数的值变为真，则操作符的结果从假变为真；当第二个操作数的值变为真，则操作符的结果从真变为假。Perl语言和Ruby，以及sed和awk有这种运算符。

例子

下述Ruby代码将打印4至6：
(1..10).each do |x|
  puts x if (x == 4 .. x == 6)
end

第一处".."是，产生一个从1至10的整数枚举。第二处".."是翻转运算符。注意，打印5时"x == 4"和"x== 6"都是假值。这是因为表达式记住了前一次循环时"x == 4"为真且"x == 6"为假。

隐患
翻转运算符需要存储其状态。这使得其生命期（lifetime）对编程者难以把握，特别是在多线程或递归时使用包含翻转运算符的代码。 例如，Perl语言中每个翻转运算符有自己的在所有线程中共享的状态。其他语言与之类似。

用一个双参数的函数实现翻转运算符，函数在不同的被调之间，需要保持其内部状态。

参考文献

运算符_(编程)