swiftの概要をザックリと
DESCRIPTION
9/18(木)に開催された、iOS 8勉強会の資料です。TRANSCRIPT
SwiftTanaka 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.