Swift 
Tanaka Keisuke 
Copyright © Classmethod, Inc.
自己紹介 
田中 圭介(たなか けいすけ) 
iOS 開発歴 4年 
クラスメソッド入社18日目 
Copyright © Classmethod, Inc. 
Just Quick Search
About Swift 
Copyright © Classmethod, Inc.
ざっくり 
行末に「;」は不要 
オブジェクト型の変数に「*」は不要 
文字列に「@」は不要 
if, switch, for に「()」は不要 
メソッド呼び出しは「object.function()」と書く 
Copyright © Classmethod, Inc.
Swift is Simple! 
Copyright © Classmethod, Inc.
Swift の基本 
Copyright © Classmethod, Inc.
変数と定数 
変数は var 
var today = 18 
! 
! 
定数は let 
let absoluteZero = -273.15 
Copyright © Classmethod, Inc.
型推論 
var today = 18 // Int 
! 
! 
let absoluteZero = -273.15 // Double 
! 
! 
let language = "Swift" // String 
Copyright © Classmethod, Inc.
明示的に宣言 
let absoluteZero = -273.15 // Double 
! 
! 
let absoluteZero: Float = -273.15 // Float 
Copyright © Classmethod, Inc.
配列 - Array 
var newModels = ["6", "6 Plus"] // 初期化 
! 
newModels[0] // -> 6 
newModels[1] // -> 6 Plus 
// こんな初期化も可能 
var newModels = [String]() 
var newModels: [String] = [] 
Copyright © Classmethod, Inc.
辞書 - Dictionary 
// 初期化 
var faceCards = ["Jack": 11, "Queen": 12, "King": 13] 
! 
faceCards["King"] // -> 13 
// こんな初期化も可能 
var faceCards = [String: Int]() 
var faceCards: [String: Int] = [:] 
Copyright © Classmethod, Inc.
タプル 
複数の構成要素からなる組を表すデータ構造 
異なる型の要素を代入することが可能 
メソッドの戻り値として利用することも可能 
let episode = (number: 4, subTitle: "A New Hope”) 
! 
episode.number // -> 4 
episode.subTitle // -> A New Hope 
Copyright © Classmethod, Inc.
switch 文 
整数以外の式の評価が可能 
break は不要 
breakしたくない時は fallthrough 
全ての case を網羅する必要あり 
Copyright © Classmethod, Inc.
for 文 
for-in でコレクションの要素にアクセス可能 
範囲指定には「..<」, 「…」を使用 
従来のセミコロン区切りの記述も可能 
for _ in 0..<3 { 
println("loop") 
} 
println("wan!") 
Copyright © Classmethod, Inc.
Optional Value 
通常、変数に nil を代入することはできない 
nil を代入したいときは宣言時、型名の後に「?」を付ける 
var text = nil // コンパイルエラー 
var text: String? // OK 
変数 text は「ラップされている」 
Copyright © Classmethod, Inc.
Optional Value 
String と String? は別の型 
使用するためには「アンラップ」する必要がある 
text.isEmpty // コンパイルエラー 
text?.isEmpty // OK  
text!.isEmpty // ランタイムエラー 
Copyright © Classmethod, Inc.
Optional Value 
「?」は変数が nil かもしれない時に付ける 
「!」は変数が絶対に nil ではないときに付ける 
Copyright © Classmethod, Inc.
実際に書いてみた感想 
Copyright © Classmethod, Inc.
よかったこと 
ずいぶんシンプルに書けるようになった 
ヘッダーファイルがなくなった 
switch, enum, タプル , _ (アンダースコア) 便利 
Copyright © Classmethod, Inc.
わるかったこと 
すべてのファイルが import されている!? 
String, Array, Dictionary が若干機能不足 
Optional Value のチェックが厳しい 
Copyright © Classmethod, Inc.
最後に 
Swift はできたてホヤホヤの新言語 
バグもあるだろうし、進化もするでしょう 
全てを含めて楽しませていただきます 
Copyright © Classmethod, Inc.
Swiftの概要をザックリと

Swiftの概要をザックリと