Ответ 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 для получения дополнительной информации.