Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Tomoki Hasegawa
4,525 views
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
第6回Swift勉強会の発表資料です。 https://atnd.org/events/61498 以前の発表資料の改訂版です。
Software
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 40
2
/ 40
3
/ 40
4
/ 40
5
/ 40
6
/ 40
7
/ 40
8
/ 40
9
/ 40
10
/ 40
11
/ 40
12
/ 40
13
/ 40
14
/ 40
15
/ 40
16
/ 40
17
/ 40
18
/ 40
19
/ 40
20
/ 40
21
/ 40
22
/ 40
23
/ 40
24
/ 40
25
/ 40
26
/ 40
27
/ 40
28
/ 40
29
/ 40
30
/ 40
31
/ 40
32
/ 40
33
/ 40
34
/ 40
35
/ 40
36
/ 40
37
/ 40
38
/ 40
39
/ 40
40
/ 40
More Related Content
PDF
はじめてのiOSアプリ開発 ①
by
Nagamine Hiromasa
PDF
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
by
Masaru Gushiken
PDF
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
by
聡 中川
PDF
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
by
Osamu Monoe
PDF
Jenkins on-mac
by
yuichi takeda
PDF
iOS Traning #0
by
yuichi takeda
PDF
Swiftのプロパティオブザーバを使い倒す
by
Tomoki Hasegawa
PDF
アドベント2015ios基礎
by
ppengotsu Name
はじめてのiOSアプリ開発 ①
by
Nagamine Hiromasa
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
by
Masaru Gushiken
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
by
聡 中川
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
by
Osamu Monoe
Jenkins on-mac
by
yuichi takeda
iOS Traning #0
by
yuichi takeda
Swiftのプロパティオブザーバを使い倒す
by
Tomoki Hasegawa
アドベント2015ios基礎
by
ppengotsu Name
What's hot
PDF
【JavaScript SDK ver.2】MonacaとmBaaSでプッシュ通知を体験しよう(for Android & iOS)
by
natsumo
PDF
iPhoneとAndroidのアプリ開発最新潮流
by
Rakuten Group, Inc.
PDF
SwiftとReactNativeで似たようなUIを作った際の記録
by
Fumiya Sakai
PDF
やはりお前らのiOS7対応は間違っている
by
今城 善矩
PDF
Potatotips3 hoshi gaki_akira_iwaya
by
Akira Iwaya
PPTX
iOSでライブラリを提供する際に気をつけたいこと
by
asakahara
PDF
Macアプリのインストーラ作成ツールSwift版
by
Akira Hayashi
PDF
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
by
hmimura_embarcadero
PPTX
HTML5/JavaScriptで作るAndroidアプリ開発seminar
by
kujirahand kujira
PPTX
Onsen UIが目指すもの
by
アシアル株式会社
PDF
Xcode以外の開発環境 AppCodeの紹介
by
Akira Hayashi
KEY
20120413 nestakabaneworkshop
by
Yoichiro Sakurai
PDF
SwiftによるiOS開発再入門
by
Tomoki Hasegawa
PDF
Visual studio 2019 updates pickup!
by
一希 大田
PDF
スマートスピーカーのバックエンドでAzure を使う方法
by
一希 大田
PDF
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
by
Kazuaki Hidaka
PDF
Androidでへっぽこ思考戦車を作ってみた
by
Yusuke Ohmichi
PDF
マルチデバイスに対応するためのAuto layout
by
asakahara
【JavaScript SDK ver.2】MonacaとmBaaSでプッシュ通知を体験しよう(for Android & iOS)
by
natsumo
iPhoneとAndroidのアプリ開発最新潮流
by
Rakuten Group, Inc.
SwiftとReactNativeで似たようなUIを作った際の記録
by
Fumiya Sakai
やはりお前らのiOS7対応は間違っている
by
今城 善矩
Potatotips3 hoshi gaki_akira_iwaya
by
Akira Iwaya
iOSでライブラリを提供する際に気をつけたいこと
by
asakahara
Macアプリのインストーラ作成ツールSwift版
by
Akira Hayashi
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
by
hmimura_embarcadero
HTML5/JavaScriptで作るAndroidアプリ開発seminar
by
kujirahand kujira
Onsen UIが目指すもの
by
アシアル株式会社
Xcode以外の開発環境 AppCodeの紹介
by
Akira Hayashi
20120413 nestakabaneworkshop
by
Yoichiro Sakurai
SwiftによるiOS開発再入門
by
Tomoki Hasegawa
Visual studio 2019 updates pickup!
by
一希 大田
スマートスピーカーのバックエンドでAzure を使う方法
by
一希 大田
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
by
Kazuaki Hidaka
Androidでへっぽこ思考戦車を作ってみた
by
Yusuke Ohmichi
マルチデバイスに対応するためのAuto layout
by
asakahara
Viewers also liked
PDF
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
by
Kazuki Sato
PDF
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
by
Daisuke Yamashita
PDF
iOSアプリの画面デザイン・遷移を驚くほど簡単にするStoryboardの使い方
by
schoowebcampus
PDF
Xcode 再入門「Xcode の検索機能」 #さいたまdev
by
Tomohiro Kumagai
PDF
Swift 3.0 の新しい機能(のうちの9つ)
by
Tomohiro Kumagai
PDF
TestFlightみたいなのを自作する
by
Tomoki Hasegawa
PDF
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
by
Tomohiro Kumagai
PDF
㉚Xcodeを覚えよう!簡単なアプリを作ってみよう!
by
Nishida Kansuke
PDF
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
by
Toshio Ehara
PDF
10分で分かるiOSアプリのつくりかた[ATGS主催イベント発表資料]
by
AT GS
PDF
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
by
Tomohiro Kumagai
PPTX
Git svnではじめる忍者のごとく潜むgit
by
Kazuki Sato
PPTX
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
by
AT GS
PDF
10分でわかるUnityアプリ開発[ATGS主催イベント発表資料]
by
AT GS
PDF
クラウド時代の経営スタイルを変革する TableauセルフサービスBIの本質的価値
by
Ryusuke Ashiya
PDF
Swift Code in Swift - 2日間でゲームを作ってみた
by
axsh co., LTD.
PPTX
Webマーケターを支援するtableau(タブロー)のケイパビリティ
by
Kazuhiro Kida
PPTX
de:code エスキュービズム勉強会0620
by
エンジニア勉強会 エスキュービズム
PDF
Objective-C/Swift コードの共用
by
Yoichiro Sakurai
PDF
理想のWEB開発
by
エンジニア勉強会 エスキュービズム
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
by
Kazuki Sato
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
by
Daisuke Yamashita
iOSアプリの画面デザイン・遷移を驚くほど簡単にするStoryboardの使い方
by
schoowebcampus
Xcode 再入門「Xcode の検索機能」 #さいたまdev
by
Tomohiro Kumagai
Swift 3.0 の新しい機能(のうちの9つ)
by
Tomohiro Kumagai
TestFlightみたいなのを自作する
by
Tomoki Hasegawa
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
by
Tomohiro Kumagai
㉚Xcodeを覚えよう!簡単なアプリを作ってみよう!
by
Nishida Kansuke
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
by
Toshio Ehara
10分で分かるiOSアプリのつくりかた[ATGS主催イベント発表資料]
by
AT GS
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
by
Tomohiro Kumagai
Git svnではじめる忍者のごとく潜むgit
by
Kazuki Sato
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
by
AT GS
10分でわかるUnityアプリ開発[ATGS主催イベント発表資料]
by
AT GS
クラウド時代の経営スタイルを変革する TableauセルフサービスBIの本質的価値
by
Ryusuke Ashiya
Swift Code in Swift - 2日間でゲームを作ってみた
by
axsh co., LTD.
Webマーケターを支援するtableau(タブロー)のケイパビリティ
by
Kazuhiro Kida
de:code エスキュービズム勉強会0620
by
エンジニア勉強会 エスキュービズム
Objective-C/Swift コードの共用
by
Yoichiro Sakurai
理想のWEB開発
by
エンジニア勉強会 エスキュービズム
Similar to オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
PDF
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
by
Tomoki Hasegawa
PPTX
SwiftのOptionalを理解する
by
幸雄 村上
PDF
Optionalでnilと戦う
by
Yuta Isogai
PDF
SwiftのOptionalを理解する
by
幸雄 村上
PPTX
第2回iOSアプリ勉強会
by
Daisuke Tsukagoshi
PDF
Optionalの使い方 第1回 Swift勉強会@ネクスト
by
Motoki Narita
PDF
Swift勉強会。はてなとかclosuresについて
by
Nobukazu Hanada
PDF
Swift事情2014夏 ~ Swift入門 beta6対応
by
Tomoki Hasegawa
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
by
Tomoki Hasegawa
SwiftのOptionalを理解する
by
幸雄 村上
Optionalでnilと戦う
by
Yuta Isogai
SwiftのOptionalを理解する
by
幸雄 村上
第2回iOSアプリ勉強会
by
Daisuke Tsukagoshi
Optionalの使い方 第1回 Swift勉強会@ネクスト
by
Motoki Narita
Swift勉強会。はてなとかclosuresについて
by
Nobukazu Hanada
Swift事情2014夏 ~ Swift入門 beta6対応
by
Tomoki Hasegawa
More from Tomoki Hasegawa
PDF
Reading php terminal-gameboy-emulator
by
Tomoki Hasegawa
PDF
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
by
Tomoki Hasegawa
PDF
とある受託ベンダの開発環境
by
Tomoki Hasegawa
PDF
iOS Developers Conference Japan 2016
by
Tomoki Hasegawa
PDF
エンジニアのお祭り
by
Tomoki Hasegawa
PDF
勉強会のこちら側とあちら側
by
Tomoki Hasegawa
PDF
tvOSでWebSocketを使う
by
Tomoki Hasegawa
PDF
「これを買っている人はこれも買っています」実装してみた PHP side
by
Tomoki Hasegawa
PDF
tvOSネイティブアプリを作る
by
Tomoki Hasegawa
PDF
「これを買っている人はこれも買っています」実装してみた
by
Tomoki Hasegawa
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
by
Tomoki Hasegawa
PDF
PHPでスマホアプリにプッシュ通知する
by
Tomoki Hasegawa
PDF
Stargazer Meetup #1
by
Tomoki Hasegawa
PDF
PUSH通知証明書作成ツールを作った
by
Tomoki Hasegawa
PDF
PHPカンファレンス福岡に 行ってきた
by
Tomoki Hasegawa
PDF
CakePHP3ウォークスルー
by
Tomoki Hasegawa
PDF
はじめてのiOSアプリ開発 Swift対応版
by
Tomoki Hasegawa
PDF
AppStore申請を一式まるっと自動化する
by
Tomoki Hasegawa
PDF
PHPerのためのSwift入門
by
Tomoki Hasegawa
PDF
3 auto layout tips
by
Tomoki Hasegawa
Reading php terminal-gameboy-emulator
by
Tomoki Hasegawa
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
by
Tomoki Hasegawa
とある受託ベンダの開発環境
by
Tomoki Hasegawa
iOS Developers Conference Japan 2016
by
Tomoki Hasegawa
エンジニアのお祭り
by
Tomoki Hasegawa
勉強会のこちら側とあちら側
by
Tomoki Hasegawa
tvOSでWebSocketを使う
by
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた PHP side
by
Tomoki Hasegawa
tvOSネイティブアプリを作る
by
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた
by
Tomoki Hasegawa
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
by
Tomoki Hasegawa
PHPでスマホアプリにプッシュ通知する
by
Tomoki Hasegawa
Stargazer Meetup #1
by
Tomoki Hasegawa
PUSH通知証明書作成ツールを作った
by
Tomoki Hasegawa
PHPカンファレンス福岡に 行ってきた
by
Tomoki Hasegawa
CakePHP3ウォークスルー
by
Tomoki Hasegawa
はじめてのiOSアプリ開発 Swift対応版
by
Tomoki Hasegawa
AppStore申請を一式まるっと自動化する
by
Tomoki Hasegawa
PHPerのためのSwift入門
by
Tomoki Hasegawa
3 auto layout tips
by
Tomoki Hasegawa
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
1.
オプショナル型。 デジタルサーカス(株)⻑⾧長⾕谷川智希 なんとなく付ける ! ?
撲滅
2.
⾃自⼰己紹介 ⻑⾧長⾕谷川智希 / デジタルサーカス(株)
副団⻑⾧長CTO と も き @tomzoh とむぞう iOS Swift Coming Soon 開発系趣味 その他趣味 iOSアプリ開発, Web開発 趣味のプログラム レンタルカートレース, 電⼦子⼯工作(mbed), …
3.
デジタルサーカス(株) ・ Webサイト受託開発 ・ スマホアプリ受託開発 ・
⾃自社サービス (PHP, Drupal, CakePHP) (iOS, Android) (http://appbuilder.jp) Twitter: @tomzoh
4.
Twitter: @tomzoh Yo:
TOMZOH Beer?!: TOMZOH
5.
今⽇日のテーマ: Swiftの 「Optional型。」
6.
Swift の String型
7.
Swift の String型には
nil は⼊入らない。 メソッドの返値とかでnilを返したいことってちょくちょくある…。
8.
Swift の String型には
nil は⼊入らない。 「nilを⼊入れたい場合、?を付ける。」 メソッドの返値とかでnilを返したいことってちょくちょくある…。
9.
Swift の String型には
nil は⼊入らない。 「nilを⼊入れたい場合、?を付ける。」 メソッドの返値とかでnilを返したいことってちょくちょくある…。
10.
nilを⼊入れたい場合、Optional<String>型を使う。
11.
nilを⼊入れたい場合、Optional<String>型を使う。 String?は…
12.
nilを⼊入れたい場合、Optional<String>型を使う。 String?は… Optional<String>の省省略略形!
13.
変数にnilが⼊入った! じゃあ、その変数を使おう!
14.
Optional<String>型はそのままではString型として使えない 元の型(String型)として使うために…
15.
Optional<String>型はそのままではString型として使えない 元の型(String型)として使うために… _⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人_ > アンラップする!! <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
16.
アンラップ ・ Optional型で「ラップした」変数を元の型として使える様にす る処理理。 ・ ⽅方法は4つある。 ・
Forced Unwrapping ・ Optional Chaining ・ Optional Binding ・ Implicitly Unwrapped Optional
17.
アンラップの⽅方法 ・ Forced Unwrapping ・
Optional Chaining ・ Optional Binding ・ Implicitly Unwrapped Optional
18.
Forced Unwrapping ・ 強制的にアンラップして元の型を取り出す。 ・
変数名の後ろに「 ! 」を付ける。 ・ Forced Unwrappingしたものは元の型になっている。 ・ nilに対してForced Unwrappingすると実⾏行行時エラーになる。
19.
アンラップの⽅方法 ・ Forced Unwrapping 強制的にアンラップして元の型を取り出す。 ・
Optional Chaining ・ Optional Binding ・ Implicitly Unwrapped Optional
20.
アンラップの⽅方法 ・ Forced Unwrapping 強制的にアンラップして元の型を取り出す。 ・
Optional Chaining ・ Optional Binding ・ Implicitly Unwrapped Optional
21.
Optional Chaining ・ 元の型のメソッドや添字を使える様にする。 ・
変数名の後ろに「 ? 」を付ける。 ・ 結果もOptional型で返される。(Chaining) ・ 変数がnilの場合そのアクセスは無視される。
22.
Optional Chaining ・ Optional
ChainingしたものはやっぱりOptional型。 ・ 結果もOptional型で返される。(Chaining) ・ 変数がnilの場合そのアクセスは無視される。
23.
アンラップの⽅方法 ・ Forced Unwrapping 強制的にアンラップして元の型を取り出す。 ・
Optional Chaining 元の型のメソッドや添字を使える様にする。 ・ Optional Binding ・ Implicitly Unwrapped Optional
24.
アンラップの⽅方法 ・ Forced Unwrapping 強制的にアンラップして元の型を取り出す。 ・
Optional Chaining 元の型のメソッドや添字を使える様にする。 ・ Optional Binding ・ Implicitly Unwrapped Optional
25.
Optional Binding ・ let
でも var でもOK。 ・ unwrapped は String 型。 ・ str が nil の場合は if の条件式の評価が false になる。 ・ 頻出構⽂文。 ・ nilチェックをしてnilでなければ元の型を取り出す。
26.
アンラップの⽅方法 ・ Forced Unwrapping 強制的にアンラップして元の型を取り出す。 ・
Optional Chaining 元の型のメソッドや添字を使える様にする。 ・ Optional Binding nilチェックをしてnilでなければ元の型を取り出す。 ・ Implicitly Unwrapped Optional
27.
アンラップの⽅方法 ・ Forced Unwrapping 強制的にアンラップして元の型を取り出す。 ・
Optional Chaining 元の型のメソッドや添字を使える様にする。 ・ Optional Binding nilチェックをしてnilでなければ元の型を取り出す。 ・ Implicitly Unwrapped Optional
28.
・ このアンラップはForced Unwrapping。 ・
nilの時に使⽤用されると実⾏行行時エラーになる。(=⾃自動的にアンラップ) ・ 取扱注意。 Implicitly Unwrapped Optional ・ Implicitly Unwrapped Optional 型で宣⾔言する。 ・ 使⽤用時に⾃自動的にアンラップされて元の型になる。
29.
アンラップの⽅方法 ・ Forced Unwrapping ・
強制的にアンラップして元の型を取り出す。 ・ Optional Chaining ・ 元の型のメソッドや添字を使える様にする。 ・ Optional Binding ・ nilチェックをしてnilでなければ元の型を取り出す。 ・ Implicitly Unwrapped Optional 使⽤用時に⾃自動的にアンラップされて元の型になる。
30.
ところで…
31.
Implicitly Unwrapped Optional ・
Implicitly Unwrapped Optional 型で宣⾔言する。 ・ 使⽤用時に⾃自動的にアンラップされて元の型になる。 ・ このアンラップはForced Unwrapping。 ・ nilの時に使⽤用されると実⾏行行時エラーになる。(=⾃自動的にアンラップ) ・ 取扱注意。
32.
Implicitly Unwrapped Optional ・
Implicitly Unwrapped Optional 型で宣⾔言する。 ・ 使⽤用時に⾃自動的にアンラップされて元の型になる。 ・ このアンラップはForced Unwrapping。 ・ nilの時に使⽤用されると実⾏行行時エラーになる。(=⾃自動的にアンラップ) ・ 取扱注意。
33.
Implicitly Unwrapped Optional ・
Implicitly Unwrapped Optional 型で宣⾔言する。 ・ 使⽤用時に⾃自動的にアンラップされて元の型になる。 _⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人_ > ⻑⾧長い!! <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
34.
省省略略形
35.
Optional型 - シンタックスシュガー ・
省省略略形、シンタックスシュガー。
36.
Optional型 - シンタックスシュガー ・
省省略略形、シンタックスシュガー。 ・ アンラップに使う「 ? 」や「 ! 」とは別物。混同すると⼤大混乱。 ・ 世の中の混乱は⼤大抵この混同から発⽣生していると思う。 ・ ⾃自分もそうだった。 ・ 「 ? 」や「 ! 」を⾒見見たらどっちなのか考えて読もう。
37.
まとめ ・ SwiftのString型(やInt型やBool型や…)はnilを値として取らない。 ・ nilを扱いたい場合Optional型やImplicitly
Unwrapped Optional型 を使う。 ・ 省省略略形として元の型の名前の後ろに「 ? 」や「 ! 」を付けて表現できる。 ・ Optional型を元の型として使うためには「アンラップ」する。 ・ アンラップは末尾に「 ? 」「 ! 」を付けてその⽅方法を表現する。 ・ Optional型の省省略略形としての「 ? 」「 ! 」とアンラップ⽅方法を表現する 「 ? 」「 ! 」は別物。
39.
Optional Ready Happy Swifting ? !
40.
ありがとうございました。 @tomzoh
Download