swiftの概要をザックリと

22
Swift Tanaka Keisuke Copyright © Classmethod, Inc.

Upload: keisuke-tanaka

Post on 28-May-2015

4.380 views

Category:

Technology


3 download

DESCRIPTION

9/18(木)に開催された、iOS 8勉強会の資料です。

TRANSCRIPT

Page 1: Swiftの概要をザックリと

SwiftTanaka Keisuke

Copyright © Classmethod, Inc.

Page 2: Swiftの概要をザックリと

自己紹介

田中 圭介(たなか けいすけ)

iOS 開発歴 4年

クラスメソッド入社18日目

Copyright © Classmethod, Inc.

Just Quick Search

Page 3: Swiftの概要をザックリと

About Swift

Copyright © Classmethod, Inc.

Page 4: Swiftの概要をザックリと

ざっくり

行末に「;」は不要

オブジェクト型の変数に「*」は不要

文字列に「@」は不要

if, switch, for に「()」は不要

メソッド呼び出しは「object.function()」と書く

Copyright © Classmethod, Inc.

Page 5: Swiftの概要をザックリと

Swift is Simple!

Copyright © Classmethod, Inc.

Page 6: Swiftの概要をザックリと

Swift の基本

Copyright © Classmethod, Inc.

Page 7: Swiftの概要をザックリと

変数と定数

変数は var

var today = 18 !!

定数は let

let absoluteZero = -273.15

Copyright © Classmethod, Inc.

Page 8: Swiftの概要をザックリと

型推論

var today = 18 // Int !!let absoluteZero = -273.15 // Double

!!let language = "Swift" // String

Copyright © Classmethod, Inc.

Page 9: Swiftの概要をザックリと

明示的に宣言

let absoluteZero = -273.15 // Double !!let absoluteZero: Float = -273.15 // Float

Copyright © Classmethod, Inc.

Page 10: Swiftの概要をザックリと

配列 - Array

var newModels = ["6", "6 Plus"] // 初期化 !newModels[0] // -> 6 newModels[1] // -> 6 Plus

// こんな初期化も可能 var newModels = [String]() var newModels: [String] = []

Copyright © Classmethod, Inc.

Page 11: Swiftの概要をザックリと

辞書 - Dictionary

// 初期化 var faceCards = ["Jack": 11, "Queen": 12, "King": 13] !faceCards["King"] // -> 13

// こんな初期化も可能 var faceCards = [String: Int]() var faceCards: [String: Int] = [:]

Copyright © Classmethod, Inc.

Page 12: Swiftの概要をザックリと

タプル

複数の構成要素からなる組を表すデータ構造

異なる型の要素を代入することが可能

メソッドの戻り値として利用することも可能

let episode = (number: 4, subTitle: "A New Hope”) !episode.number // -> 4 episode.subTitle // -> A New Hope

Copyright © Classmethod, Inc.

Page 13: Swiftの概要をザックリと

switch 文

整数以外の式の評価が可能

break は不要

breakしたくない時は fallthrough

全ての case を網羅する必要あり

Copyright © Classmethod, Inc.

Page 14: Swiftの概要をザックリと

for 文

for-in でコレクションの要素にアクセス可能

範囲指定には「..<」, 「…」を使用

従来のセミコロン区切りの記述も可能

for _ in 0..<3 { println("loop") } println("wan!")

Copyright © Classmethod, Inc.

Page 15: Swiftの概要をザックリと

Optional Value

通常、変数に nil を代入することはできない

nil を代入したいときは宣言時、型名の後に「?」を付ける

var text = nil // コンパイルエラー var text: String? // OK

変数 text は「ラップされている」Copyright © Classmethod, Inc.

Page 16: Swiftの概要をザックリと

Optional Value

String と String? は別の型

使用するためには「アンラップ」する必要がある

text.isEmpty // コンパイルエラー text?.isEmpty // OK  text!.isEmpty // ランタイムエラー

Copyright © Classmethod, Inc.

Page 17: Swiftの概要をザックリと

Optional Value

「?」は変数が nil かもしれない時に付ける

「!」は変数が絶対に nil ではないときに付ける

Copyright © Classmethod, Inc.

Page 18: Swiftの概要をザックリと

実際に書いてみた感想

Copyright © Classmethod, Inc.

Page 19: Swiftの概要をザックリと

よかったこと

ずいぶんシンプルに書けるようになった

ヘッダーファイルがなくなった

switch, enum, タプル , _ (アンダースコア) 便利

Copyright © Classmethod, Inc.

Page 20: Swiftの概要をザックリと

わるかったこと

すべてのファイルが import されている!?

String, Array, Dictionary が若干機能不足

Optional Value のチェックが厳しい

Copyright © Classmethod, Inc.

Page 21: Swiftの概要をザックリと

最後に

Swift はできたてホヤホヤの新言語

バグもあるだろうし、進化もするでしょう

全てを含めて楽しませていただきます

Copyright © Classmethod, Inc.

Page 22: Swiftの概要をザックリと