1

Swift 2.2 では、C スタイルの for ステートメントが非推奨になったため、次の for ループを変更します。

for var idx=data.count-1; idx>=0; --idx

の中へ

for idx in (0...data.count-1).reverse()  // <--- new statement

ただし、data.count実行中に が 0 の場合、新しいステートメントがエラーでクラッシュすることがわかりましたfatal error: Can't form range with end < start

この場合のコーディングに最適/標準的な方法はありますか?

PS 統一された C スタイルのループを置き換えるには、さまざまな種類のループ/構文を使用する必要があると思います。これに関するその他のコメントや提案は大歓迎です。

4

4 に答える 4

2

Strideable.stride(through:by:)次のように、for ループの範囲を生成するために使用する必要があります。

for idx in (data.count-1).stride(through: 0, by: -1) {
    print(idx)
}

であっても動作しdata.count == 0ます。

于 2016-03-27T07:06:10.583 に答える