После обновления до Xcode 7.3
в моем проекте появляется множество предупреждений.
'++' устарел: он будет удален в Swift 3.
Любая идея исправить это предупреждение? Есть ли причины, по которым ++
и --
будут объявлены устаревшими в будущем?
После обновления до Xcode 7.3
в моем проекте появляется множество предупреждений.
'++' устарел: он будет удален в Swift 3.
Любая идея исправить это предупреждение? Есть ли причины, по которым ++
и --
будут объявлены устаревшими в будущем?
Начиная с Swift 2.2 вместо этого следует использовать += 1
или -= 1
.
И после просмотра эволюции Swift есть несколько причин для удаления этих операторов:
Эти операторы усложняют изучение Swift как первого языка программирования — или любого другого случая, когда вы еще не знаете эти операторы из другого языка.
Их выразительное преимущество минимально — x++ ненамного короче x += 1.
Swift уже отличается от C тем, что =, += и другие операции, подобные присваиванию, возвращают Void (по ряду причин). Эти операторы несовместимы с этой моделью.
Swift имеет мощные функции, которые устраняют многие распространенные причины, по которым вы использовали бы ++i в цикле for в стиле C в других языках, поэтому они относительно редко используются в хорошо написанном коде Swift. Эти функции включают в себя цикл for-in, диапазоны, перечисление, карту и т. д.
Код, который на самом деле использует значение результата этих операторов, часто сбивает с толку и неудобен для читателя/сопровождающего кода. Они поощряют слишком сложный код, который может быть симпатичным, но трудным для понимания.
Хотя в Swift четко определен порядок вычислений, любой код, зависящий от него (например, foo(++a, a++)) был бы нежелательным, даже если бы он был четко определен.
Эти операторы применимы к относительно небольшому числу типов: целочисленные скаляры и скаляры с плавающей запятой, а также концепции, подобные итераторам. Они не применяются к комплексным числам, матрицам и т. д.
Наконец, они не соответствуют метрике: если бы у нас их еще не было, добавили бы мы их в Swift 3?
Пожалуйста, проверьте Быстрая эволюция для получения дополнительной информации.
x + = 1 represent x++
; что если ++x
?
- person stan liu; 05.10.2016