Swift中如何高效比较并批量更新多组对应变量?
高效实现多变量的比较与更新操作
方案1:封装通用函数(推荐)
把判断更新逻辑封装成通用函数,避免重复代码,后续维护也更方便。以Swift为例(其他编程语言逻辑可直接套用):
func updateIfNeeded<T: Equatable>(_ target: inout T, with source: T) { if target != source { target = source } } // 调用示例 updateIfNeeded(&valueOne, with: firstValue) updateIfNeeded(&valueTwo, with: secondValue) updateIfNeeded(&valueThree, with: thirdValue) updateIfNeeded(&valueFour, with: fourthValue)
方案2:元组批量处理(整体更新场景)
如果你的语言支持元组,可以将变量打包后批量比较,适合允许全量更新的场景:
let sourceTuple = (firstValue, secondValue, thirdValue, fourthValue) var targetTuple = (valueOne, valueTwo, valueThree, valueFour) if targetTuple != sourceTuple { (valueOne, valueTwo, valueThree, valueFour) = sourceTuple }
*注意:此方案是整体对比后全量更新,若需要单独判断每个变量并只更新不相等的项,方案1更精准。
方案3:简化赋值语句(紧凑写法)
部分语言支持三元表达式或简洁赋值语法,可直接压缩单变量的判断更新逻辑,以Python为例:
valueOne = firstValue if valueOne != firstValue else valueOne # 若没有赋值副作用或性能顾虑,也可直接写 valueOne = firstValue(赋值本身是幂等操作)
内容的提问来源于stack exchange,提问作者markm
相关产品推荐
相关产品推荐

