Поскольку выражение «++» и «-» будет удалено в Swift 3, следующий код будет недействительным.Что такое замена «++» и «-» в swift3?
return i < 0 ? nil : i--
Теперь я просто переписать его, как этот
if i < 0 {
return nil
}
let res = i
i -= 1
return res
Но это выглядит слишком .... громоздким.
Как переписать этот код как можно короче в Swift 3?
Там нет причин для изменчивости здесь. Просто верните i-1 вместо мутирования i, а затем вернитесь. Ваш старый код останется таким же полезным. – SBI
@SBI Глядя на ОП: переписывать, возможно, сокращение 'i' используется каким-то неявным способом (например,' i' является переменной inout). Вероятно, это и проблема [и XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). DarkLuna: если вам действительно нужно уменьшить 'i' и вернуть прежнее значение, как выглядит контекст использования этих операций? Вы, скорее всего, можете построить таким образом, что не будете сталкиваться с необходимостью использовать операторы '++' или '--' вообще. – dfri
Я не думаю, что этот вопрос является обманом, который был отмечен как. Более того, речь идет не о том, что ответы ниже предполагали это (а именно, ответы до сих пор предполагали, что побочный эффект «i -» был непреднамеренным, где, как представляется, было преднамеренным, хотя и ошибочным). – Rob