他言語からの Swift

変数

// 変数の宣言 let b = 10 var a = 5 let (x, y) = (1, 2) // 型付け var hoge: Int // 初期化 var fuga: Int = 1 // 定数 let hoge: String = "Hoge" // 命名規則はキャメルケース var userName: String

四則演算

// 数値の四則演算 1 + 2 // equals 3 5 - 3 // equals 2 2 * 3 // equals 6 10.0 / 2.5 // equals 4.0 // 文字列の結合 "hello, " + "world" // equals "hello, world" // これもできる a += 2 // 等号 1 == 1 2 != 1 // 異なる型同士の演算は怒られる 1.5 + 1 // error 1.5 + Float(1) // ok

論理演算子

// not !a // and a && b // or a || b

Nil

var a = nil

式展開

var num = 1 var str = "num: \(num)" // => num: 1

for 文

names = ["Alice", "Bob", "Carol", "David"] for name in names { print(name) } // => Alice // => Bob // => Carol // => David // 範囲オブジェクト的なことができる for index in 1...5 { print(index) } // => 1 // => 2 // => 3 // => 4 // => 5 for index in 1..5 { print(index) } // => 1 // => 2 // => 3 // => 4 name = ["Alice", "Bob", "Carol", "David"] print(name[2...]) // => ["Carol", "David"]

if 文

if hoge == fuga { // 処理 } else if hoge == fuga2 { // 処理 } else { // 処理 }

switch 文

switch num{ case 0: print("num: 0") case 1: print("num: 2") case 2: print("num: 3") default: print("num: ?") }

default は必須。ないとエラーを吐く。

辞書型

var hash: [String:Int] = [String:Int]() hash["hoge"] = 1

Optional

Swift では変数がデフォルトで nil になることはない。

// これは怒られる var hoge print(hoge) // error

ので Optional型でラップする必要がある。

// ラップは ? で行う var hoge? print(hoge) // ok

関数

// 定義 func 関数名(引数名 :引数型名) -> 戻り値型名{ //処理 } func hoge(fuga: Int) -> Int{ fuga +=1 } // 呼び出し hoge(fuga: 2) // => 3 // デフォルト値 func hoge(fuga: Int = 3) -> Int{ fuga +=1 } hoge() //=> 4

クラス

// 定義 class Hoge { func hogehoge() { print("hogehoge") } } var hoge = Hoge() hoge.hogehoge() // => "hogehoge" // ---------------------------- // オーバーライド class Fuga: Hoge { override func fugafuga() { print("fugafuga") } } var fuga = Fuga() fuga.fugafuga() // => "fugafuga" // ---------------------------- // 継承 class Fuga2: Hoge { func fugafuga2() { super.hogehoge() print("fugafuga") } } var fuga2 = Fuga2() fuga2.fugafuga2() // => "hogehoge" // => "fugafuga"

参考