それでは、『SwiftのOptionalのベストプラクティス』というタイトルで発表します。 #swtws pic.twitter.com/OJfz2tk4sP — koher (@koher) 2017年4月15日 2 年程前、 Qiita に『SwiftのOptional型を極める』というタイトルで投稿をしました。内容は、 Optional とは何かという説明と、 Optional の使い方を合わせたものでした。 しかし、 Swift 1 だった当時と比べると Optional 周りの状況は大きく変わり、特に使い方の部分が適切ではなくなってきました。また、僕のSwift経験値もたまって、新たな知見も蓄積されてきました。 今回の投稿では、 Swift の Optional 周りを整理し、いつ・どのように Optional を使うべきか、僕の考えるベストプラクティスを紹介します。 全体を通し
Optional型にも map() メソッドがあるのですね。 mapがどういう存在なのか、ますます分からなくなってきました。 Swiftの全関数一覧で @tottokotkd さんからこのような返信をいただいたので、 Array と Optional の map メソッド/関数は概念として同じものだ という内容のコメントを書きました。他にも同様の疑問を持っている人がいるかもしれないと思い、本投稿は上記投稿へのコメントを加筆・修正して、独立した記事として投稿したものです。 mapとは何か Optional や Array を値を入れる箱だと考えると、 map は箱から値を取り出さずに操作するためのメソッド/関数です(正確には、操作した結果を新しい箱に格納して返します)。 Optionalの場合 例えば、
はじめに SwiftのOptionalについて、こんな認識がありました。 Int? は Int が入るかもしれないしnilが入るかもしれない型 これだけの認識でもSwiftのプログラミングは十分可能だと思います。 Optional BindingやOptional Chainingを使いこなせれば、Optionalと友達以上恋人未満の関係になったと言っていいでしょう。 ただ、それだけでは満足しきれない、もっとOptionalのことを知りたい!恋人以上の関係になりたい!と思うようになってきました。 Optionalの定義 Optionalの定義を確認してみます。(いろいろ省いています。 public enum Optional<Wrapped> { case None case Some(Wrapped) } この時点でOptionalの認識が少し改まります。 Int? は Some(Int
2015-08-11 Swiftのコツ - Optionalになれる Swift Swift始めたばかりで一番悩むのが Optional ではないでしょうか? これに一番手っ取り早くなれる方法は、 シンタックスシュガーを使わない ことです。たぶんw 以前も書きましたが、Optionalをnull許容型と思うと苦しいです。 あくまで enum です。nilは、Optional.None の省略記法みたいなもんです。 では次のコードをシンタックスシュガーを使わず書いてみましょう。 //普通の書き方 var str : String? = nil str = "123" var value = str?.toInt() //書き換える var str : Optional<String> = Optional<String>.None str = Optional<String>.Some("1
2015-06-26 Swiftのコツ - Optionalをunwrapしない Swift さていよいよ Optional に入っていきましょう。?を付ける変数のことですね。 こいつを、 nullを入れれる変数 と解釈すると結構つらい思いをすると思います。 具体的には、 !を多用してぬるぽで落ちまくる と思います。えぇ自分も最初そうでしたw Optionalを扱う上で大事なのは、 !を使わないこと です。 慣れるとほぼ使わず組めます。手抜きするときは使いますがw 悪い例をみてみましょう。StringでURLを受け取り、HTTPアクセスするとします。 func access(path : String) -> NSData? { let url = NSURL(string: path) //NSURL?型になる let request = NSURLRequest(URL : url!)
2. ⾃自⼰己紹介 ともき ・⻑⾧長⾕谷川智希 / デジタルサーカス(株) 副団⻑⾧長CTO ! ・開発系趣味: iOSアプリ開発, Web開発 ・その他趣味: レンタルカート, 電⼦子⼯工作(mbed), … Twitter Yo Beer?! @tomzoh TOMZOH TOMZOH 3. ⾃自⼰己紹介 ともき ・⻑⾧長⾕谷川智希 / デジタルサーカス(株) 副団⻑⾧長CTO 新! 卒13年年⽬目 ・開発系趣味: iOSアプリ開発, Web開発 ・その他趣味: レンタルカート, 電⼦子⼯工作(mbed), … Twitter Yo Beer?! @tomzoh TOMZOH TOMZOH
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く