W Swift 4.1 można to osiągnąć w następujący sposób:
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)")
Zauważ, że pomimo tego, że to rozwiązanie jest podobne do poprzednich rozwiązań w tym poście, nie działają one już w Swift 4.1 i ten przykład działa. Zauważ również, że ktokolwiek powyżej wspomina, że + = jest zamiennikiem dla ++, po prostu nie w pełni rozumie operator, ponieważ ++ w połączeniu z przypisaniem to w rzeczywistości dwie operacje, stąd skrót. W moim przykładzie:var s = t++
robi dwie rzeczy: przypisuje wartość t do s, a następnie zwiększa t. Jeśli ++ występuje wcześniej, to te same dwie operacje wykonane w odwrotnej kolejności. Moim zdaniem rozumowanie Apple dotyczące tego, dlaczego usunąć tego operatora (wspomniane w poprzednich odpowiedziach), jest nie tylko fałszywym rozumowaniem, ale ponadto uważam, że to kłamstwo, a prawdziwym powodem jest to, że nie mogli zmusić kompilatora do tego. W poprzednich wersjach sprawiało im to kłopoty, więc zrezygnowali. Logika „operatora zbyt skomplikowanego, aby go zrozumieć, stąd usunięta” jest oczywiście kłamstwem, ponieważ język Swift zawiera operatory o wiele bardziej skomplikowane i znacznie mniej przydatne, których nie usunięto. Posiada go również ogromna większość języków programowania. JavaScript, C, C #, Java, C ++ i wiele innych. Programiści chętnie z niego korzystają. Komu trudno jest zrozumieć tego operatora,
Strategia Swift jest prosta: Apple uważa, że programista jest głupi i dlatego powinien być odpowiednio traktowany.
Prawda jest taka, że Swift, uruchomiony we wrześniu 2014 r., Miał już być gdzie indziej. Inne języki rosły znacznie szybciej.
Mogę wymienić wiele głównych błędów w języku, od poważnych: takich jak tablice wklejane według wartości, a nie przez odniesienie, po irytujące: funkcje z parametrami zmiennymi nie mogą zaakceptować tablicy, która jest podstawą jej działania. Nie sądzę, aby pracownicy Apple'a mogli nawet patrzeć na inne języki, takie jak Java, więc nawet nie wiedzą, że Apple jest o lata świetlne w tyle. Apple mogło przyjąć Javę jako język, ale obecnie wyzwaniem nie jest technologia, ale ego. Gdyby otworzyli IntelliJ, aby napisać trochę Javy, z pewnością zamknęliby swoje biznesowe zrozumienie, że w tym momencie nie mogą i nigdy nie nadrobią zaległości.