In Swift 3. ve 4. , bu şöyle olacaktır:
Johnston'ın cevabına göre sayılarla:
var a = [1,2,3,4,5,6]
for (i,num) in a.enumerated().reversed() {
a.remove(at: i)
}
print(a)
İle dizeleri OP'ın soru olarak:
var b = ["a", "b", "c", "d", "e", "f"]
for (i,str) in b.enumerated().reversed()
{
if str == "c"
{
b.remove(at: i)
}
}
print(b)
Ancak şimdi Swift 4.2 veya sonraki sürümlerde, Apple tarafından WWDC2018'de önerilen daha iyi ve daha hızlı bir yol var:
var c = ["a", "b", "c", "d", "e", "f"]
c.removeAll(where: {$0 == "c"})
print(c)
Bu yeni yöntemin birçok avantajı vardır:
- İle uygulamalardan daha hızlıdır
filter
.
- Dizileri ters çevirme ihtiyacını ortadan kaldırır.
- Öğeleri yerinde kaldırır ve böylece yeni bir dizi tahsis etmek ve geri döndürmek yerine orijinal diziyi günceller.