这个Swift语法是什么意思?

时间:2018-04-08 17:55:47

标签: swift

有人请求帮助我使用这种语法吗? 这是协议实现:

extension ViewController: CustomCellDelegate {
    func cellStateToggled(cell: CustomCell) {
        guard let cellIndex = self.tableView.indexPath(for: cell) else { return }
        activeIndex = activeIndex == cellIndex ? nil : cellIndex
        tableView.reloadData()
    }
}

我需要帮助理解的是这条特殊的路线:

activeIndex = activeIndex == cellIndex ? nil : cellIndex

我理解第二部分,三元条件运算符,但我不确定第一部分是做什么的:

activeIndex = activeIndex 

它们如何结合在一起?

谢谢!

1 个答案:

答案 0 :(得分:4)

更好地理解

1
2
3
6

这意味着如果activeIndex = ( activeIndex == cellIndex ) ? nil : cellIndex 等于cellIndex,则将nil分配给activeIndex,否则分配activeIndex,这是

的简写
cellIndex