2016-03-23 3 views
11

++ устареет в скор 3++ осуждается он будет удален в быстром 3

переменная ++ теперь можно записать в виде

variable += 1 

Как я могу переписать ++variable.

Вспомните, пожалуйста, разницу между ++variable и variable++ синтаксис

+0

Не имеет значения. Это не то, что вы говорите, это когда вы это говорите. Если вы понимаете разницу между '++ variable' и' variable ++ ', это очевидно. Если нет, пожалуйста, прочитайте мой сейчас-о-так-утомительно-пересмотренный ответ. – matt

+0

Прочитайте это http://stackoverflow.com/questions/17366847/what-is-the-difference-between-pre-increment-and-post-increment-in-the-cycle-fo?answertab=votes#tab-top , Должен также применяться в Свифт. – Akaino

+0

Читайте это: http://stackoverflow.com/questions/36173096/is-deprecated-it-will-be-removed-in-swift-3 –

ответ

24

переписать как:

variable += 1 

... точно так, как подсказывает предупреждающее сообщение. Конечно, теперь это будет отдельная строка (это единственное плохое в этом изменении). Важно то, что , где вы положили эту строку.


Так, например

let otherVariable = ++variable // variable is a previously defined var 

теперь становится

variable += 1 // variable is _still_ a previously defined var 
let otherVariable = variable 

Но с другой стороны

let otherVariable = variable++ // variable is a previously defined var 

теперь становится

let otherVariable = variable 
variable += 1 // variable is _still_ a previously defined var 

Дополнительно для специалистов: В редких случаях, когда вы return variable++ - то есть, вы возвращаете variable, который находится в более высоком объеме, и затем приращение его - вы можете решить эту проблему:

defer { 
    variable += 1 
} 
return variable 
+1

Я думаю, автор спрашивает о разных синтаксисах '++ var' и' var ++ '. Как первый вариант должен быть исправлен? – sage444

+5

@ sage444 То же самое. Это так же просто, как просто. Проблема в том, что '++' не является; поэтому его отменяют. Большинство людей даже не понимают разницу между преинкрементальным и постинкрементным. Итак, теперь вы просто увеличиваете - в тот момент, когда это имеет смысл сделать это. – matt

+0

Это немного усложняется, когда вы используете выражение postincrement как возвращаемое значение 'return index ++';) – vadian

1

Вы можете написать variable += 1 на приведенной выше строке. Реализуйте preincrement, увеличивая, раньше.

Смежные вопросы