[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
関連記事
-
-
[Objective-C] デリゲート (Delegate)を理解する!
デリゲートとは? デリゲートに関しての意味合いとして、”委譲”とか”代理”と説明されることが多いで
-
-
[Objective-C] iPhoneアプリからのメーラー起動
今回はiPhoneアプリからメーラーを起動する処理を紹介します。 メーラー起動のコントローラー
-
-
[Objective-C] no architectures to compile for … のコンパイルエラーについて
起動したプロジェクトでコンパイルエラーが出ました。 no architectures to com
-
-
[Swift] UITabBarControllerでタブ選択時のイベントを取得する
UITabBarController タブを使った画面を作成する場合はUITabBarContro
-
-
NSDateを5分刻み・15分刻みで丸める
NsDateを初期値としてUIDatePicker等に設定する場合、日付の丸め処理が必要になるのでメ
-
-
[Swift] optional値の設定(??)
optional値がnilの時 プロジェクトでのテンプレートを選択した時にソースコードが自動生成さ
-
-
[Swift] CoreDataのテーブルからデータ件数を取得する
件数を取得する fetchResultsControllerなどを使わず、直接テーブルのデータ件数
-
-
[Objective-C] 文字列操作の便利Tips
Tipsいろいろ 先日の投稿 共通関数をまとめたクラスを作ろう!の流れで、文字列を操作するときに便