Submit Search
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
50 likes
•
31,388 views
Tomoki Hasegawa
2014/10/18の「iOS 8/Swift エンジニア勉強会」のLT資料です。
Software
Read more
1 of 38
Download now
Downloaded 66 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
More Related Content
Viewers also liked
(7)
PDF
Xcode 6の新機能
Shingo Sato
PDF
iOS8勉強会@Yahoo! JAPAN "Document Provider"
智也 大西
PDF
Ios8yahoo swift-json
dankogai
PDF
SwiftでSioriを開発した体験記
yohei sugigami
PDF
大人のHomekit
Ken Haneda
PDF
既存アプリのiOS8対応 #ios8yahoo
Yahoo!デベロッパーネットワーク
PDF
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
niwatako
Xcode 6の新機能
Shingo Sato
iOS8勉強会@Yahoo! JAPAN "Document Provider"
智也 大西
Ios8yahoo swift-json
dankogai
SwiftでSioriを開発した体験記
yohei sugigami
大人のHomekit
Ken Haneda
既存アプリのiOS8対応 #ios8yahoo
Yahoo!デベロッパーネットワーク
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
niwatako
Similar to オプショナル型。 〜 なんとなく付ける ! ? 撲滅
(20)
PDF
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
PPTX
SwiftのOptionalを理解する
幸雄 村上
PDF
Swift勉強会。はてなとかclosuresについて
Nobukazu Hanada
PDF
SwiftのOptionalを理解する
幸雄 村上
PPTX
第2回iOSアプリ勉強会
Daisuke Tsukagoshi
PDF
Swift入門おさらい
GMO TECH 株式会社
PDF
Optionalでnilと戦う
Yuta Isogai
PDF
20141128 iOSチーム勉強会 My Sweet Swift
necocen
PDF
続・ゲンバのSwift
Yuichi Adachi
PDF
Swift事情2014夏 ~ Swift入門 beta6対応
Tomoki Hasegawa
PDF
Optionalの使い方 第1回 Swift勉強会@ネクスト
Motoki Narita
PDF
Swiftの新機能 Optional
Yuichi Adachi
PDF
Swift 2.0 で変わったところ「前編」 #cswift
Tomohiro Kumagai
PDF
Study Swift
Akihiro Urushihara
PDF
値付き Enum 入門、そして伝説へ #yhios #cocoa kansai
Tomohiro Kumagai
PDF
Swiftおさらい
Hidenori Takeshita
PDF
Swift本ができるまで
yuki0211s
PDF
Optional型の簡単な説明
Fumiya Sakai
PDF
Swift Optional without Syntax Sugar
Hisakuni Fujimoto
PDF
Swift Open Hours 2 - Swift ラボで聞いてきた話
Tomohiro Kumagai
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
SwiftのOptionalを理解する
幸雄 村上
Swift勉強会。はてなとかclosuresについて
Nobukazu Hanada
SwiftのOptionalを理解する
幸雄 村上
第2回iOSアプリ勉強会
Daisuke Tsukagoshi
Swift入門おさらい
GMO TECH 株式会社
Optionalでnilと戦う
Yuta Isogai
20141128 iOSチーム勉強会 My Sweet Swift
necocen
続・ゲンバのSwift
Yuichi Adachi
Swift事情2014夏 ~ Swift入門 beta6対応
Tomoki Hasegawa
Optionalの使い方 第1回 Swift勉強会@ネクスト
Motoki Narita
Swiftの新機能 Optional
Yuichi Adachi
Swift 2.0 で変わったところ「前編」 #cswift
Tomohiro Kumagai
Study Swift
Akihiro Urushihara
値付き Enum 入門、そして伝説へ #yhios #cocoa kansai
Tomohiro Kumagai
Swiftおさらい
Hidenori Takeshita
Swift本ができるまで
yuki0211s
Optional型の簡単な説明
Fumiya Sakai
Swift Optional without Syntax Sugar
Hisakuni Fujimoto
Swift Open Hours 2 - Swift ラボで聞いてきた話
Tomohiro Kumagai
Ad
More from Tomoki Hasegawa
(20)
PDF
Reading php terminal-gameboy-emulator
Tomoki Hasegawa
PDF
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
Tomoki Hasegawa
PDF
とある受託ベンダの開発環境
Tomoki Hasegawa
PDF
iOS Developers Conference Japan 2016
Tomoki Hasegawa
PDF
エンジニアのお祭り
Tomoki Hasegawa
PDF
勉強会のこちら側とあちら側
Tomoki Hasegawa
PDF
tvOSでWebSocketを使う
Tomoki Hasegawa
PDF
「これを買っている人はこれも買っています」実装してみた PHP side
Tomoki Hasegawa
PDF
tvOSネイティブアプリを作る
Tomoki Hasegawa
PDF
「これを買っている人はこれも買っています」実装してみた
Tomoki Hasegawa
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Tomoki Hasegawa
PDF
TestFlightみたいなのを自作する
Tomoki Hasegawa
PDF
PHPでスマホアプリにプッシュ通知する
Tomoki Hasegawa
PDF
Stargazer Meetup #1
Tomoki Hasegawa
PDF
PUSH通知証明書作成ツールを作った
Tomoki Hasegawa
PDF
PHPカンファレンス福岡に 行ってきた
Tomoki Hasegawa
PDF
CakePHP3ウォークスルー
Tomoki Hasegawa
PDF
はじめてのiOSアプリ開発 Swift対応版
Tomoki Hasegawa
PDF
AppStore申請を一式まるっと自動化する
Tomoki Hasegawa
PDF
PHPerのためのSwift入門
Tomoki Hasegawa
Reading php terminal-gameboy-emulator
Tomoki Hasegawa
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
Tomoki Hasegawa
とある受託ベンダの開発環境
Tomoki Hasegawa
iOS Developers Conference Japan 2016
Tomoki Hasegawa
エンジニアのお祭り
Tomoki Hasegawa
勉強会のこちら側とあちら側
Tomoki Hasegawa
tvOSでWebSocketを使う
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた PHP side
Tomoki Hasegawa
tvOSネイティブアプリを作る
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた
Tomoki Hasegawa
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Tomoki Hasegawa
TestFlightみたいなのを自作する
Tomoki Hasegawa
PHPでスマホアプリにプッシュ通知する
Tomoki Hasegawa
Stargazer Meetup #1
Tomoki Hasegawa
PUSH通知証明書作成ツールを作った
Tomoki Hasegawa
PHPカンファレンス福岡に 行ってきた
Tomoki Hasegawa
CakePHP3ウォークスルー
Tomoki Hasegawa
はじめてのiOSアプリ開発 Swift対応版
Tomoki Hasegawa
AppStore申請を一式まるっと自動化する
Tomoki Hasegawa
PHPerのためのSwift入門
Tomoki Hasegawa
Ad
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
1.
オプショナル型。 なんとなく付ける !
? 撲滅 デジタルサーカス(株)⻑⾧長⾕谷川智希
2.
⾃自⼰己紹介 ともき ・⻑⾧長⾕谷川智希
/ デジタルサーカス(株) 副団⻑⾧長CTO ! ・開発系趣味: iOSアプリ開発, Web開発 ・その他趣味: レンタルカート, 電⼦子⼯工作(mbed), … Twitter Yo Beer?! @tomzoh TOMZOH TOMZOH
3.
⾃自⼰己紹介 ともき ・⻑⾧長⾕谷川智希
/ デジタルサーカス(株) 副団⻑⾧長CTO 新! 卒13年年⽬目 ・開発系趣味: iOSアプリ開発, Web開発 ・その他趣味: レンタルカート, 電⼦子⼯工作(mbed), … Twitter Yo Beer?! @tomzoh TOMZOH TOMZOH
4.
著書 2012 2013
2014 iOS 執筆中 Twitter: @tomzoh Yo: TOMZOH Beer?!: TOMZOH
5.
デジタルサーカス(株) ・Webサイト受託開発 ・スマホアプリ受託開発
・⾃自社サービス (PHP, CakePHP, Drupal) (iOS, Android) (http://appbuilder.jp) Twitter: @tomzoh Yo: TOMZOH Beer?!: TOMZOH
6.
Twitter: @tomzoh Yo:
TOMZOH Beer?!: TOMZOH
7.
今⽇日のテーマ: Swiftの 「Optional型。」
8.
Swift の String型
9.
Swift の String型には
nil は⼊入らない。 メソッドの返値とかでnilを返したいことってちょくちょくある…。
10.
Swift の String型には
nil は⼊入らない。 メソッドの返値とかでnilを返したいことってちょくちょくある…。 「nilを⼊入れたい場合、?を付ける。」
11.
Swift の String型には
nil は⼊入らない。 メソッドの返値とかでnilを返したいことってちょくちょくある…。 「nilを⼊入れたい場合、?を付ける。」
12.
nilを⼊入れたい場合、Optional<String>型を使う。
13.
nilを⼊入れたい場合、Optional<String>型を使う。 String?は…
14.
nilを⼊入れたい場合、Optional<String>型を使う。 String?は… Optional<String>の省省略略形!
15.
変数にnilが⼊入った! そしたらその変数を使うよ!
16.
Optional<String>型はそのままではString型としては使えない 元の型(String型)として使うために…
17.
Optional<String>型はそのままではString型としては使えない 元の型(String型)として使うために… _⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人_
> アンラップする!! <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
18.
アンラップ ・Optional型で「ラップした」変数を元の型として使える様にす る処理理。
・⽅方法は4つある。 ・Forced Unwrapping ・Optional Chaining ・Optional Binding ・Implicitly Unwrapped Optional
19.
Forced Unwrapping ・強制的にアンラップして元の型を取り出す。
・変数名の後ろに「 ! 」を付ける。 ・Forced Unwrappingしたものは元の型になっている。 ・nilに対してForced Unwrappingすると実⾏行行時エラーになる。
20.
アンラップの⽅方法 ・Forced Unwrapping
強制的にアンラップして元の型を取り出す。 ・Optional Chaining ! ・Optional Binding ! ・Implicitly Unwrapped Optional
21.
Optional Chaining ・元の型のメソッドや添字を使える様にする。
・変数名の後ろに「 ? 」を付ける。 ・結果もOptional型で返される。(Chaining) ・変数がnilの場合そのアクセスは無視される。
22.
Optional Chaining ・結果もOptional型で返される。(Chaining)
・変数がnilの場合そのアクセスは無視される。 ・Optional ChainingしたものはやっぱりOptional型。
23.
アンラップの⽅方法 ・Forced Unwrapping
強制的にアンラップして元の型を取り出す。 ・Optional Chaining 元の型のメソッドや添字を使える様にする。 ・Optional Binding ! ・Implicitly Unwrapped Optional
24.
Optional Binding ・nilチェックをしてnilでなければ元の型を取り出す。
・let でも var でもOK。 ・unwrapped は String 型。 ・str が nil の場合は if の条件式の評価が false になる。 ・頻出構⽂文。
25.
アンラップの⽅方法 ・Forced Unwrapping
強制的にアンラップして元の型を取り出す。 ・Optional Chaining 元の型のメソッドや添字を使える様にする。 ・Optional Binding nilチェックをしてnilでなければ元の型を取り出す。 ・Implicitly Unwrapped Optional
26.
Implicitly Unwrapped Optional
・Implicitly Unwrapped Optional 型で宣⾔言する。 ・使⽤用時に⾃自動的にアンラップされて元の型になる。 ・このアンラップはForced Unwrapping。 ・nilの時に使⽤用されると実⾏行行時エラーになる。(=⾃自動的にアンラップ) ・取扱注意。
27.
アンラップの⽅方法 ・Forced Unwrapping
・強制的にアンラップして元の型を取り出す。 ・Optional Chaining ・元の型のメソッドや添字を使える様にする。 ・Optional Binding ・nilチェックをしてnilでなければ元の型を取り出す。 ・Implicitly Unwrapped Optional 使⽤用時に⾃自動的にアンラップされて元の型になる。
28.
ところで…
29.
Implicitly Unwrapped Optional
・Implicitly Unwrapped Optional 型で宣⾔言する。 ・使⽤用時に⾃自動的にアンラップされて元の型になる。 ・このアンラップはForced Unwrapping。 ・nilの時に使⽤用されると実⾏行行時エラーになる。(=⾃自動的にアンラップ) ・取扱注意。
30.
Implicitly Unwrapped Optional
・Implicitly Unwrapped Optional 型で宣⾔言する。 ・使⽤用時に⾃自動的にアンラップされて元の型になる。 ・このアンラップはForced Unwrapping。 ・nilの時に使⽤用されると実⾏行行時エラーになる。(=⾃自動的にアンラップ) ・取扱注意。
31.
Implicitly Unwrapped Optional
・Implicitly Unwrapped Optional 型で宣⾔言する。 ・使⽤用時に⾃自動的にアンラップされて元の型になる。 _⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人_ > ⻑⾧長い!! <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
32.
省省略略形
33.
Optional型 - シンタックスシュガー
・省省略略形、シンタックスシュガー。
34.
Optional型 - シンタックスシュガー
・省省略略形、シンタックスシュガー。 ・アンラップに使う「 ? 」や「 ! 」とは別物。混同すると⼤大混乱。 ・世の中の混乱は⼤大抵この混同から発⽣生していると思う。 ・⾃自分もそうだった。 ・「 ? 」や「 ! 」を⾒見見たらどっちなのか考えて読もう。
35.
まとめ ・SwiftのString型(やInt型やBool型や…)はnilを値として取らない。 ・nilを扱いたい場合Optional型やImplicitly
Unwrapped Optional型 を使う。 ・省省略略形として元の型の名前の後ろに「 ? 」や「 ! 」を付けて表現できる。 ・Optional型を元の型として使うためには「アンラップ」する。 ・アンラップは末尾に「 ? 」「 ! 」を付けてその⽅方法を表現する。 ・Optional型の省省略略形としての「 ? 」「 ! 」とアンラップ⽅方法を表現する 「 ? 」「 ! 」は別物。
36.
オプショナル型 完全理理解!
37.
Happy Swifting!
38.
ありがとうございました。 @tomzoh
Download