You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:29:18