xinconan / blog

闲谈
7 stars 0 forks source link

巧用异或符 ^ 实现取反 #23

Open xinconan opened 5 years ago

xinconan commented 5 years ago

经常会遇到这样的需求:点击选择,再次点击取消选择,每次点击的结果和上次相反。

一般我们会这样实现:

selected = !selected;

还可以这么写:

selected = selected ^ true;
// or
selected ^= true;

这里就是用到了异或的运算规则了【同0异1】:

0 ^ 0 = 0;
0 ^ 1 = 1;
1 ^ 0 = 1;
1 ^ 1 = 0;