У Swift 4.1 це можна досягти таким чином:
prefix operator ++
postfix operator ++
extension Int{
static prefix func ++(x: inout Int)->Int{
x += 1
return x
}
static postfix func ++(x: inout Int)->Int{
x += 1
return x-1
}
}
//example:
var t = 5
var s = t++
print("\(t) \(s)")
Зауважте, що незважаючи на те, що це рішення, подібне до попередніх рішень на цій посаді, вони більше не працюють у Swift 4.1, і цей приклад робить. Також зауважте, що той, хто вище згадує, що + = є заміною ++, просто не повністю розуміє оператора, оскільки ++ у поєднанні з призначенням - це фактично дві операції, отже, ярлик. У моєму прикладі:var s = t++
робить дві речі: призначає значення t до s, а потім збільшує t. Якщо ++ приходить раніше, це ті самі дві операції, які виконуються у зворотному порядку. На мій погляд, міркування Apple про те, чому видалити цього оператора (згадане в попередніх відповідях), є не лише помилковим міркуванням, але, крім того, я вважаю, що це брехня, і справжня причина полягає в тому, що вони не змогли змусити їх компілятора впоратися. Це доставляло їм клопоти в попередніх версіях, тому вони здавались. Логіка "занадто складної для розуміння оператора, отже, видаленої" очевидно брехня, оскільки Swift містить операторів, набагато складніших і набагато менш корисних, які не були видалені. Також переважна більшість мов програмування має його. JavaScript, C, C #, Java, C ++ та багато іншого. Програмісти із задоволенням цим користуються. Кому не важко зрозуміти цього оператора,
Стратегія, що стоїть за Swift, проста: Apple вважає, що програміст німий, і тому до нього слід ставитися відповідно.
Правда полягає в тому, що Swift, запущений у вересні 2014 року, вже повинен був бути десь в іншому місці. Інші мови виростали набагато швидше.
Я можу перерахувати багато основних помилок у мові, від серйозних: таких як масиви, вставлені за значенням, а не за посиланням, до набридливих: функції різних параметрів не можуть прийняти масив, який стоїть за цією ідеєю. Я не думаю, що співробітникам Apple навіть дозволено дивитись на інші мови, такі як Java, тому вони навіть не знають, що Apple на відстані світлових років. Apple могла прийняти Java як мову, але в наші дні виклик - це не технологія, а его. Якби вони відкрили IntelliJ, щоб написати якусь Java, вони б точно закрили свій бізнес, розуміючи, що в цей момент вони не можуть і не догнають ніколи.