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

Swift语法疑问:解析activeIndex = activeIndex == cellIndex ? nil : cellIndex语句

理解Swift中这行三元运算符代码的含义

先来看你这段代码的上下文:这是CustomCellDelegate的实现方法,用来处理表格单元格的状态切换逻辑。其中你疑惑的这行三元运算符代码,其实就是切换选中状态的核心逻辑,我把它拆解开给你讲明白:

activeIndex = activeIndex == cellIndex ? nil : cellIndex

等价的if-else写法

如果你觉得三元运算符看着绕,它完全可以转换成更直观的if-else语句,效果一模一样:

if activeIndex == cellIndex {
    // 如果当前选中的索引就是点击的这个cell的索引
    activeIndex = nil // 取消选中,把选中索引置空
} else {
    // 如果点击的是未选中的cell
    activeIndex = cellIndex // 将这个cell的索引设为当前选中的索引
}

逐部分解释

  • 首先判断条件:activeIndex == cellIndex —— 检查当前记录的选中索引,是不是和你刚点击的这个cell的索引一致
  • 条件为true时(点击了已经选中的cell):执行?后面的nil,也就是把activeIndex设为空,相当于取消这个cell的选中状态
  • 条件为false时(点击了未被选中的cell):执行:后面的cellIndex,把当前点击的cell索引设为新的选中索引,也就是选中这个cell

配合后面的tableView.reloadData(),表格会重新刷新,根据activeIndex的值来更新各个cell的选中状态显示,实现“点击选中,再点击取消”的交互效果。

内容的提问来源于stack exchange,提问作者Dimitar Vuksanov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:00:04