Swiftで遊ぼう! - 227 - Developing iOS 8 Apps with Swift - Optionalは単なるenum
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- Swift2.1 & Xcode7.1対応の日本語版アップルチュートリアル!
- Table View実装チュートリアルをXcode7.3で解説
- Core Data シンプルチュートリアル
- 私の本業、オフィシャルなブログ-> Life-LOG
2016年5月12日:スタンフォード大学の春の講義(Developing iOS 9 Apps with Swift)の復習をしていて改訂:Swift2.2向けに拡張
-
- -
昨日の疑問は解消されていませんが、立ち止まらず次に進みます。
またいつか疑問が解消されることを期待しながら...(^^;)
スタンフォード大のポール先生の講義はやっと4つ目の"More Swift and Foundation Frameworks"に入ります。
最初の話題はなんとOptionalでした!
これを見ても問題の解決にはならなかったけど、Optionalの概念は理解できました。
こういうコンセプトでOptionalが用意されているんですね。enumだったんですね。驚きでした。
enum Optional<T> { // <T>はジェネリック case None case Some(T) }
let x: String? = nil
次のように書き換えられます。
let x = Optional<Strin>.None
let x:String? = "hello"
これは次のように置き換えられるんですね。
let x = Optional<String>.Some("hello")
そしてオプショナルのアンラップ「!」は次のようにswitchを使うのと同等になります。
var y = x!
は次のように置き換えることができます。
switch x { case Some(let value): y = value case None: //クラッシュ! }
Optionalをアンラップして使う「if let」を使う場合は...
let x: String? = ...
if let y = x {
// do something with y
}
というコードは次のように置き換えられます。
switch x { case Some(let value): // do something with y case None: break }
次はOptionalsのチェイン化の説明。
var display: UILabel? if let label = display { if let text = label.text { let x = text.hashValue .... } }
これを次のようにオプショナルチェインで表現できます。
if let x = diplay?.text?.hashValue {...}
当然「x」はOptional("Int型の数字")になります。
そして「??」の説明も加えていますが、もう1つ「? :」も次のページで確認します。
ということで今日はここまで。