Swift 4.1'de şu şekilde elde edilebilir:
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)")
Bu çözümün bu yazıda önceki çözümlere benzer olmasına rağmen, Swift 4.1'de artık çalışmadığına ve bu örneğin işe yaramadığına dikkat edin. Ayrıca, yukarıdaki her kimin + = ++ yerine geçebileceğinden bahsettiğinde operatörün tam olarak anlamadığını anlayın. Örneğimde:var s = t++
iki şey yapar: t değerini s'ye atayın ve sonra t'yi artırın. ++ daha önce gelirse, ters sırayla yapılan iki işlemle aynıdır. Benim düşünceme göre, Apple'ın bu operatörü (önceki cevaplarda belirtildiği gibi) neden kaldırdığına dair akıl yürütmesi sadece yanlış bir akıl yürütme değil, aynı zamanda bir yalan olduğuna inanıyorum ve asıl sebep derleyicilerinin bununla başa çıkamamasıdır. Onlara önceki versiyonlarında sıkıntılar verdi, bu yüzden vazgeçtiler. "Operatörü anlamak için çok karmaşık, dolayısıyla kaldırıldı" mantığı açık bir şekilde yalan. Ayrıca, programlama dillerinin büyük çoğunluğu buna sahiptir. JavaScript, C, C #, Java, C ++ ve daha fazlası. Programcılar bunu mutlu bir şekilde kullanıyor. Bu operatörü anlamak kim için çok zorsa,
Swift'in arkasındaki strateji basit: Apple, programcının aptal olduğuna ve bu nedenle buna göre tedavi edilmesi gerektiğine inanıyor.
Gerçek şu ki, Eylül 2014'te başlatılan Swift'in şu an başka bir yerde olması gerekiyordu. Diğer diller çok daha hızlı büyüdü.
Dilde birçok önemli hatayı, ciddi olanlardan listeleyebilirim: referansla değil, değere yapıştırılan diziler gibi can sıkıcı olanlara: varyasyon parametreleri işlevleri, arkasındaki tüm fikir olan bir diziyi kabul edemez. Apple çalışanlarının Java gibi diğer dillere bakmalarına bile izin verilmediğini düşünmüyorum, böylece Apple'ın ışık yıllarının geride olduğunu bile bilmiyorlar. Apple Java'yı bir dil olarak benimseyebilirdi, ancak bugünlerde meydan okuma teknoloji değil, ego. Bazı Java yazmak için IntelliJ'i açarlarsa, bu noktada iş anlayışlarını kesinlikle kapatacaklardı, bu noktada hiç yakalayamayacaklar ve olmayacaklar.