Swift中如何优雅实现数组元素0与1的互转(无需if-else)
Swift 中无需 if-else 实现 0/1 翻转的优雅写法
嘿,这个问题我太熟悉了!Swift 里确实没办法像 JavaScript 那样直接用 ! 操作符翻转整数 0 和 1,但完全不用写 if-else 语句,也有好几种简洁优雅的实现方式:
方法一:算术运算(最直观)
利用 1 减去当前值的特性,刚好能实现 0 和 1 的互转:array[index] = 1 - array[index]这个方法逻辑直白,只要你确定数组元素只会是 0 或 1,用它准没错。
方法二:位运算异或(更简洁高效)
用异或运算符^和 1 进行运算,因为0 ^ 1 = 1、1 ^ 1 = 0,完美符合翻转需求,而且位运算的执行效率还很高:array[index] ^= 1这种写法看起来更干练,熟悉位运算的话一眼就能看懂逻辑。
如果你的场景里原本用的是布尔值(Bool),那其实可以直接用 ! 翻转,但针对整数 0/1 的情况,上面两种方法就是最优雅的无分支实现啦。
内容的提问来源于stack exchange,提问作者AlexBerd
相关产品推荐
相关产品推荐

