2017-09-16 96 views
1

我嘗試爲swift中的字符串處理創建一個迭代器,每次都會返回字符。但沒有運氣。 (最終目標是爲自定義腳本語言編寫解析器)swift中的字符串迭代器

我在網上找到的所有方法都涉及到某個範圍的for循環,它可以訪問字符串的字符,一次一個。 但我寧願需要hasNext()和getNextChar()等方法,其他函數會調用..

在swift中編寫類似這樣的迭代器類的最有效方法是什麼?是否有可能已經實現了該功能的swift中的某個類,因此,我不必首先編寫迭代器?

+0

'對於char在myString.characters {//東西}'。 – rmaddy

+0

@rmaddy,謝謝你的回答!但正如我所提到的,我需要實現像hasNext()和getNextChar()這樣的方法,而不是一個能夠完成所有工作的for循環... –

回答

1

致電makeIterator()charactersString返回IndexingIterator<String>。你可以撥打next()來獲得下一個角色。當沒有更多字符時它返回nil

let myString = "abcde" 

var iter = myString.characters.makeIterator() // Swift 3 
// var iter = myString.makeIterator()   // Swift 4 

while let c = iter.next() { 
    print(c) 
} 

輸出:

a 
b 
c 
d 
e 
+0

非常感謝vacawama!有效! (Swift 3) –