"++" устарел: он будет удален в Swift 3

После обновления до Xcode 7.3 в моем проекте есть множество предупреждений.

'++' устарел: он будет удален в Swift 3

Любая идея исправить это предупреждение? Любые причины, по которым ++ и -- будут устаревать в будущем?

Ответы

Ответ 1

Начиная с Swift 2.2, вы должны использовать += 1 или -= 1.

И после поиска эволюции Swift есть несколько причин для удаления этих операторов:

  • Эти операторы увеличивают нагрузку, чтобы изучить Swift как первый язык программирования - или любой другой случай, когда вы еще не знаете этих операторов с другого языка.

  • Их выразительное преимущество минимально - x ++ не намного короче x + = 1.

  • Swift уже отклоняется от C тем, что операции =, + = и другие операции присваивания возвращают Void (по ряду причин). Эти операторы несовместимы с этой моделью.

  • У Swift есть мощные функции, которые устраняют многие из общих причин, по которым вы используете ++ я в цикле C-стиля на других языках, поэтому они относительно редко используются в хорошо написанном коде Swift. Эти функции включают в себя цикл in-in, диапазоны, перечисление, карту и т.д.

  • Код, который фактически использует значение результата этих операторов, часто путается и тонко читает/поддерживает код. Они поощряют "чрезмерно хитрый" код, который может быть симпатичным, но трудным для понимания.

  • В то время как Swift имеет четко определенный порядок оценки, любой код, зависящий от него (например, foo (++ a, a ++)), был бы нежелательным, даже если бы он был четко определен.

  • Эти операторы применимы к относительно небольшим типам: целые и плавающие числа с плавающей запятой и итераторные понятия. Они не применяются к комплексным числам, матрицам и т.д.

Наконец, они не соответствуют метрике "если бы у нас их еще не было, добавим ли они их в Swift 3?"

Пожалуйста, ознакомьтесь с Swift evolution для получения дополнительной информации.