将来、C スタイルの for ステートメントは Swift から削除されます。stride
usingや..<
演算子など、C スタイルの for ステートメントを使用する代替方法は多数ありますが、これらは一部の条件でのみ機能します。
String.CharacterView.Index
たとえば、Swift の古いバージョンでは、C スタイルの for ステートメントを使用して、Stringのインデックスを 1 つおきにループすることができました。
for var index = string.startIndex; index < string.endIndex; index = string.successor().successor(){
//code
}
しかし、これは現在非推奨です。while
ループを使用して同じことを行う方法があります
var index = string.startIndex
while index < string.endIndex{
//code
index = index.successor().successor()
}
しかし、それは回避策以上のものではありません。..<
文字列のすべてのインデックスをループするのに最適な演算子があります
for index in string.startIndex..<string.endIndex
それでも、これは、文字列の 1 つおきのインデックス、または文字列の n 番目ごとのインデックスをループするのには役立ちません。
ループ以外の String の他のすべてのインデックスをループする「迅速な」方法はありwhile
ますか? この質問は、文字列インデックスだけに関係するものではなく.successor()
、一般に wherestride
や..<
do not work などの機能を持つオブジェクトに関係します。