Tagbangers Blog

【Swift】オプショナル型とクロージャ

こんにちは、藤岡です。

今週は、初めてフローチャートという「処理の流れなどを表現するために記号を用いて表した図表」を作成しました。

今回作ったのはiOSのSwiftで書かれたコードだったのですが、文法や構文がわからないところがあって、つまずいてしまったので、わからなかったところを調べて軽くまとめてみました。


オプショナル型について

Swiftで採用されている「オプショナル型」という型は、僕が今まで学んできたJavaやJSにはないものだったので、少し新鮮でした。

このオプショナル型は普通の型とどう違うのかというと、変数にnilを代入することができるというところです。

では、具体的にどのように使うのかというと

var name: String?
var age: Int!

のように、データ型の最後に「?」か「!」をつけます。

では「?」と「!」はどう違うのかというと、変数の宣言時には同じで、どちらもオプショナル型を付与する役割があります。

しかし、それ以外の時、例えば強制アンラップをする時などにも「!」は使用されます。

アンラップというのは、オプショナル型の値を普通の値に変換することを言います。

なぜこのような型があるのかというと、オプショナル型があることで、開発者自身がnilの状態をより強く意識することができるところにメリットがあるようです。確かに、多少手間は増えますが、nilが存在することで起こりうるミスを防ぐことができるというのは大きなメリットかもしれません。

もっと詳しく知りたいと思った方は、こちらの記事を参考に理解を深めてみてください。

参考記事)http://qiita.com/maiki055/items/b24378a3707bd35a31a8

                   http://qiita.com/nori0620/items/afa94cc42f3233f54bdc


Closureについて

クロージャという概念はJavaにもあるので比較的理解しやすいですが、Swiftでは表記の仕方が違うようなので、調べてみました。

クロージャの基本としては

{ ([parameters]) -> [return type] in
    [statements]
}

となるようです。

{}で囲み、その中に引数や戻り値を定義することで使用します。

クロージャは自分で作ったプログラムの中であまり使ったことがないので、いまいち理解ができていないのが現状ですが、これを機にどういうものなのか理解したいです。

こちらも、以下の記事を参考にしてみてください。

参考記事)http://qiita.com/edo_m18/items/1d93af7de75c6d415f19