Gelecekte, C-style for statements will be removed from Swift. stride
veya ..<
operatörünün kullanılması gibi deyimler için C stilini kullanmanın birçok alternatif yöntemi olsa da, bunlar yalnızca bazı koşullarda çalışır.Deyimler için String.CharacterView.Index.successor() öğesini kullanma
Örneğin, eski sürümlerinde, geçiş yapmak mümkün oldu. ifadeleri Ancak bu artık önerilmemektedir
for var index = string.startIndex; index < string.endIndex; index = string.successor().successor(){
//code
}
C-stilini kullanarak bir dize ait
String.CharacterView.Index
endekslerinin her diğeri. Orada bir
while
döngü
var index = string.startIndex
while index < string.endIndex{
//code
index = index.successor().successor()
}
kullanarak aynı şeyi yapmak için bir yol, ama geçici bir çözüm çok daha fazla değildir. dize
for index in string.startIndex..<string.endIndex
her indeksi döngü için mükemmel olurdu Ancak bu dizenin her diğer indeksi veya dize her n indeksi döngü ile yardımcı olmuyor ..<
operatör vardır
while
döngüsünden başka bir String'in diğer tüm dizinlerinden döngü oluşturmanın başka "hızlı" yolu var mı? Bu soru yalnızca dize dizinleriyle ilgili değil, yalnızcagibi genel olarak stride
ve ..<
çalışmayan nesnelerin çalıştığı nesnelerdir.
o döngü örneğin 'in' endeksi = index.successor() halefi() değil midir? – vadian
@vadian evet, ve bu yöntem şu anda çalışıyor, ancak kullanımdan kaldırıldı ve Swift – Jojodmo
'un gelecekteki bir sürümünde kaldırılıyor Bir karakter görünümü oluşturmanın ilginç bir tartışması: http://stackoverflow.com/questions/36205309/conforming-string -characterview-index-to-strideable-fatal-error-kullanırken-stri- – matt