C" と言われて出てきたのに、触ってみると静的型付けの世界だった。 let 再代入不可を簡単に保 証できる let max = 100 max = 200 // error Swift愛好会 vol.100 — 第1回を振り返る Optional null チェック漏れをコ ンパイル時に防ぐ var name: String? name.count // error if let n = name { … } 暗黙の型変換なし Java では Int / Float が勝手に変換されてバ グった let a: Int = 1 let b: Double = 0.5 a + b // error 14 / 32
max = 100; max = 200; let max = 100 max = 200 // error var count = 0 count += 1 // OK // 通ってしまう final int limit = 100; limit = 200; // error はあった。でもわざわざ書くもので、ローカル変数 に付ける習慣はほぼなかった。 final Swift愛好会 vol.100 — 第1回を振り返る は var と同じ3文字。短い方が安全だから自然と使 う。Xcode も「変更していない var は let にしろ」と 警告してくる。 let 15 / 32
a = 5, b = 2; double c = a / b; let a = 5, b = 2 let c: Double = a / b // c は 2.5 ではなく 2.0 // int どうしで割ってから昇格 let c2 = Double(a) / Double(b) // 2.5 便利なはずの自動変換が、計算の順番でだまってバグる。実 際にやられた。 Swift愛好会 vol.100 — 第1回を振り返る // error 変換は必ず明示。書く量は増えるが、意図が読める。書く前 に止まる。 17 / 32