[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] CoreDataを使ってみる
SwiftでCoreData 今回はSwiftでCoreDataを使ってみます。 Xcodeプロ
-
[iPhone App] WorkManagerの不具合について
バージョン1.2.2の不具合 11/25日現在、iPhoneアプリの「WorkManger」バージ
-
[iPhone App] WorkManager 1.2.0版がリリースされました。
新機能 以前から要望などが多かったものを元に、機能を追加いたしました。 新バージョンで追加された
-
[Swift] 画像を合成する
画像を合成 以下の2つの画像を合成してみます。円と四角です。 画像をプロジェクトに追
-
NSDateを5分刻み・15分刻みで丸める
NsDateを初期値としてUIDatePicker等に設定する場合、日付の丸め処理が必要になるのでメ
-
Xcode5のstoryboard内でUIKeyCommandエラーの対処法
既存のプロジェクトからstoryboardにあるオブジェクトをコピペして、新規プロジェクトに貼付けた
-
[Objective-C] 共通関数をまとめたクラスを作ろう!
共通クラスとは? アプリを作っていると「この処理何回も書いてるなー」ということが多々あると思います
-
OSSの使い方がわからない・・・。
チュートリアル系の、storyboradでview controllerを置いて画面遷移を設定してっ
-
[Swift] スクリーンサイズを取得する
スクリーンサイズを取得 iPhoneの幅と高さを取得する関数を紹介します。 iOS8から画面の傾
-
[Swift] CoreDataのテーブルからデータ件数を取得する
件数を取得する fetchResultsControllerなどを使わず、直接テーブルのデータ件数