gpt4 book ai didi

swift -++ 后增量运算符的替代方案?

转载 作者:可可西里 更新时间:2023-11-01 00:08:22 26 4
gpt4 key购买 nike

我想在不使用 Swift 中遗留的++ 的情况下重构这种合并排序。

当一元运算符用于使用实例方法和多个级别的更复杂的语句时,我在逻辑上遇到了麻烦。

你不能简单地将 ++ 切换为 +=1 因为你会得到一个 Cannot subscript a value of type '[Int]' with an index类型为“()” 错误。

那么我应该创建一个新的可变副本 var,然后递增该 var 吗?即使没有错误检查,我也可以使用 guard 重构这个 block 吗?毫无意义?

if (hidariCount < hidari.count && (migiCount >= migi.count || hidari[hidariCount] <= migi[migiCount])) {
sortedArray.append(hidari[hidariCount++])
} else if (migiCount < migi.count && (hidariCount >= hidari.count || migi[migiCount] < hidari[hidariCount])) {
sortedArray.append(migi[migiCount++])
}

最佳答案

如果您真的很想念它们,您可以简单地在

中重新定义它们
postfix operator ++ // i++
postfix func ++ ( left: inout Int) -> Int {
defer {left += 1}
return left
}
postfix operator -- // i--
postfix func -- ( left: inout Int) -> Int {
defer {left -= 1}
return left
}
prefix operator ++ // ++i
prefix func ++ ( right: inout Int) -> Int {
right += 1
return right
}
prefix operator -- // --i
prefix func -- ( right: inout Int) -> Int {
right -= 1
return right
}

虽然这并不是真正可取的!

关于swift -++ 后增量运算符的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36239618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com