Swift 基本シンタックス
定数と変数
型推論が導入されている。
書式
// 定数 let 定数名 = 値 let 定数名:型 = 値 // 変数 var 変数名 = 値 var 変数名:型 = 値
タプル
複数の値を1個の値として扱えるようにする。
書式
(値1, 値2, ・・・) (ラベル:値1, ラベル:値2, ・・・) //ラベル付き
例
var user = ("山田", 35, true) var user:(String, Int, Bool) = ("山田", 35, true) // 型指定 // ラベル付き var user = (name:"山田", age:35, isPass:true) var user = (name:String, age:Int, isPass:Bool) = ("山田", 35, true)
値を取り出す
// インデックス番号でアクセス let name = user.0 let age = user.1 let isPass = user.2 // ラベルでアクセス let name = user.name let age = user.age let isPass = user.isPass
演算子
演算 | 記号 |
---|---|
算術演算子 | +, -, *, /, % |
インクリメント, デクリメント | ++, -- |
論理演算子 | &&, ||, ! |
比較演算子 | >, <, >=, <=, ==, != |
オブジェクトの比較 | ===, !== |
代入演算子 | = |
複合代入演算子 | +=, -=, *=, /=, %=, &&=, ||= |
三項演算子 | 条件式 ? trueの場合の式 : falseの場合の式 |
レンジ演算子 | 開始値..<終了値, 開始値...終了値 |
ビット演算子 | <<, >>, &, |, ^, ~ |
条件分岐
if 文
if (条件式) { ステートメントA } if (条件式1) { ステートメントA } else if (条件式2) { ステートメントB } else { ステートメントC }
switch 文
switch 式 { case 値1: ステートメントA // swiftではbreakしなくても以降の処理を実行しない fallthrough // これを書けばフォールスルーで以降を実行する case 値2: ステートメントB case 値3, 値4, 値5: ステートメントC default: ステートメントD }
ループ処理
// 指定範囲から順に値を取り出す for-in ループ for 変数 in 開始値 ..< 最終値 { ステートメント } // コレクションの値を順に取り出す for-in ループ for 変数 in コレクション { ステートメント } let numList = [4,2,7,8,9] var sum = 0 for num in numList { sum += sum } // カウンタを数えて繰り返す for ループ for (カウンタの初期化; 条件 ; カウントアップまたはダウン) { ステートメント } for (var i=sizelist.count ; i>0; i--) { let size = sizelist[i-1] } // 繰り返し while ループ while (ループ条件) { ステートメント } // 繰り返し do-while ループ do { ステートメント } while (ループ条件) // 現在の繰り返しの残りの処理をスキップする continue // 繰り返しを中断する(ループを中断する) break // ループにラベルを付ける xloop:for x in 0...5 { yloop:for y in 0...5 { if (x>y) { continue xloop // yloopを中断してxloopに抜ける } } } xloop:for x in 0...5 { yloop:for y in 0...5 { if (x>y) { break xloop // yloopだけでなくxloopも中断する } } }