[Swift] guard構文を使って安全なコードを書く
こんにちは、@yoheiMuneです。
今日はSwiftのguard構文を使った、実装方法をブログに書きたいと思います。
上記関数を呼び出すと以下のようになります。
https://swift.sandbox.bluemix.net/#/repl/5a025108d0f9bc44a212103a
また、if文との違いとして、
https://swift.org/documentation/#api-design-guidelines
本ブログでは、Swift、Go言語、Python、フロントエンド、Linux、Node.js、インフラ、Java、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時に、解決の糸口を見つけられる」そんな目標でブログを書き続けています。今後も役立つネタを書いていきますので、ぜひ本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
今日はSwiftのguard構文を使った、実装方法をブログに書きたいと思います。
目次
guard構文の使い方
Swift言語ではguard
構文を使うと、値の正当性チェックをした後に、安全に値を使うことができます。例えば以下のように利用します。func sayName(_ info: [String:String]) { // もしnameというキーに紐づく値がなければ、メッセージを出して終わり guard let name = info["name"] else { print("Oh..., no name was provided.") return } // ここでは、nameに値が入った状態が保証される. print("Hello from \(name)") }
guard
構文を使って値の正当性を担保しながら、その値を後続の処理で使うことができます。上記関数を呼び出すと以下のようになります。
// guard構文に引っかからない場合 sayName(["name": "Yohei"]) // Hello from Yohei // guard構文に引っかかる場合 sayName([:]) // Oh..., no name was provided.上記のコードは、以下のオンラインデモで動かすことができます。
https://swift.sandbox.bluemix.net/#/repl/5a025108d0f9bc44a212103a
また、if文との違いとして、
guard let ...
で定義した変数を、guard構文後にも参照できるという点があります。if文だとそのブロック内でしか変数が有効ではないですが、guardだとその後にも利用できます。参考資料
guard構文については、SwiftのePubが参考になります。https://swift.org/documentation/#api-design-guidelines
最後に
Swift言語はできることいっぱいあってすごいですね。言語仕様自体もとても勉強になるので(今後の糧にもなりそうなので)、ちょっとずつブログに書いて行きたいと思います。本ブログでは、Swift、Go言語、Python、フロントエンド、Linux、Node.js、インフラ、Java、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時に、解決の糸口を見つけられる」そんな目標でブログを書き続けています。今後も役立つネタを書いていきますので、ぜひ本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!