[Swift] Swiftでいろんなfor文まとめてみた
公開日:
:
最終更新日:2014/10/07
iPhone App 開発, Swift
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/users/1/juny/web/hidef/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524
いろんなfor文
プログラム作成で必ず出てくるfor文を自分なりにまとめてみました。
Swiftという言語は、色んな言語が交じった感じなので忘れないようにメモ。
基本的なfor文(数値の繰り返し)
for var i = 0; i < 5; i++ {
println("\(i)")
}
CやJava、Javascriptでよく見かける基本的なfor文です。
結果
0
1
2
3
4
範囲指定のfor文
for i in 1...5 {
println("\(i)")
}
[…]で範囲を出力します。
結果
1
2
3
4
5
範囲指定のfor文2
for i in 1..<5 {
println("\(i)")
}
[..<]で範囲を出力しますが、最後の数値は含みません。
結果
1
2
3
4
配列を使ったfor文
let array = ["配列1", "配列2", "配列3"]
for value in array {
println("\(value)")
}
配列のfor文です。従来のプラグラムとあまり変わりないですね。
もちろん、array[2]のように添字で値を取得できます。array[2]の場合は”配列3″が返ってきます。
結果
配列1
配列2
配列3
Dictionary(キーと値)を使ったfor文
let dictionary = ["1":"1の値", "2":"2の値", "3":"3の値"]
for (key, value) in dictionary {
println("key:\(key) value:\(value)")
}
キーと値を持つDictionary(JavaではMap)形式でのfor文です。
とてもシンプルにキーと値が取得できます。
結果
key:2 value:2の値
key:3 value:3の値
key:1 value:1の値
あれ!? 順番がバラバラ…
ソートしないといけないんですね。当たり前か。
そして、直したコードがこれ。
let dictionary: [String : String] = ["1":"1の値", "2":"2の値", "3":"3の値"]
let sortedKeys = (dictionary as NSDictionary).keysSortedByValueUsingSelector("compare:")
for key in sortedKeys as [String] {
if let value = dictionary[key] {
println("key:\(key) value:\(value)")
}
}
すごく長くなりました。全然シンプルじゃないし。
2行目でキーの文字列をソートして再格納。
3行目でソートのキーをfor文で繰り返し、key文字列を値があるかどうかチェックし、出力しています。
ちなみに4行目の値チェックをしないと値がちゃんと取得できません。Optional(値が決定していない?)だからだそうです…
結果
key:1 value:1の値
key:2 value:2の値
key:3 value:3の値
まとめ
簡単ではありますが、swiftでのfor文をまとめてみました。
特殊な点は範囲指定のfor文で、少しVBチックな手法ですね。
そして、dictionaryのfor文はかなり面倒でした。気をつけよう。。
ad
関連記事
-
-
[Swift] プロパティリスト(plist)の値を取得
plistからデータを取得してみます。 こちらのエントリーも参考にしてみてください。 プロパテ
-
-
[Swift] 関数型プログラミング
関数型プログラミングについて、ストーリー仕立ての面白い記事がありましたので紹介します。 IQ1
-
-
[Swift] UINavigationControllerで戻るイベントを取得する
UINavigationController UINavigationControllerを使用し
-
-
[Objective-C] iPhoneアプリからのメーラー起動
今回はiPhoneアプリからメーラーを起動する処理を紹介します。 メーラー起動のコントローラー
-
-
[Swift] スクリーンサイズを取得する
スクリーンサイズを取得 iPhoneの幅と高さを取得する関数を紹介します。 iOS8から画面の傾
-
-
App開発をはじめてみました。
はじめてみたはいいものの、右も左もわからず、書籍を読みあさり、ネットを徘徊し、いろんなことを調べ上げ
-
-
[Swift] ビルド時のエラー&iOS8でNSBigDecimalのバグ
ビルド時のエラー Swiftプロジェクトを実行中に以下のエラーが出ました。 "__TFSs15_
-
-
[Swift] 定数クラスをつくってみる
Objective-cの場合 今回は共通にする定数をまとめるクラスを作ってみます。 まずはO
-
-
[Swift] プロパティリスト(plist)を使ってCoreDataで一括登録する
プロパティリストを使う 初期データやあらかじめ用意したデータを一括登録したい場合、プロパティリスト
-
-
[iPhone App] WorkManager 1.2.0版がリリースされました。
新機能 以前から要望などが多かったものを元に、機能を追加いたしました。 新バージョンで追加された