В 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
}
}
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, они бы наверняка закрыли свой бизнес, понимая, что на данный момент они не могут и никогда не догонят.