構文inoueSwift3.0以降のfor文に対応するこの記事は2016年8月9日に書かれたものです。内容が古い可能性がありますのでご注意ください。Tweetご存知の方も多いと思いますが、Swift3.0からいわゆるC言語スタイルのforループ文が廃止されます。incrementersC言語スタイルというのは次のような構文ですね。プログラマなら馴染みがありすぎるのではないでしょうか。-も廃止されることにも注意です。脈々と受け継がれてきたこの書き方が廃止されること、そしてそのディシジョンを下すSwiftチームの思いきりに驚きます。廃止される以上書き換えが必要になりますが、書き換えの方法は二つあります。for..in..を用いる関数型言語的に書く二つ目がわかりづらい書き方していますが、要は便利な関数が標準ライブラリに用意されているのでそれを使おうぜという話です。こちらはクロージャが活躍するので、Swiftのクロージャの記法に慣れてない人はそちらも確認しておきましょう。各場合における書き換えを見ていきます。インクリメント最もシンプルな場合ですね。print(i)}次のように変更します。}最後のをクロージャ表記に慣れてない方に補足しておくと、Swiftではクロージャの引数に自動的に$0、$1、$2...と順に名前が付与されます。今回の例では$0が非短縮の場合のnumにあたります。print(i)}デクリメントの場合は関数reverseを用いてあげます。print(i)}1以外の刻みで数字を増減させたい時はstrideを用います。}条件指定(if文ネスト)for文の中でif文がネストするというのもよくあるパターンですね。}}次のように書き換えられます。}補足すると、二つ目はクロージャのreturnを省略した書き方です。配列を扱う配列に対してループを回す場合です。print(array[i])}配列Arrayも範囲Rangeと同様の書き換えができます。print("\(i+1)番目の名前は\(array[i])")}enumulateを用います。}$0.0、$0.1はタプル$0の各要素にアクセスしており、つまりそれぞれindexとelementにあたります。辞書型を扱うCスタイルからの書き換えではないですが、せっかくなので辞書型のループも合わせて載せておきます。}慣れ親しんだfor文が廃止と聞くと驚きますが、言語側でお膳立てがしっかりしているので対応はそれほど難しいところはないのではないでしょうか。関数的な処理は見た目から慣れは要りますが、とてもスマートに書けるので積極的に使いたいですね。for..in..と関数のどちらか自分が書きやすい方で書くことになりますが、チーム開発であればコーディング規約を設けるのも大切になると思います。