simotin13's message

simotin13といいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

Swiftのoptional valueの使い方について

f:id:simotin13:20140808063611p:plain

iOS向けの新しい言語であるSwiftを勉強しようと思って、Xcode6のベータ版とプログラミングの解説書をibooksでダウンロードしてみました。

Swiftの言語仕様は多言語と比べてそんなに癖のないように思いますが、
Optional Valueのという機能がよくわかりませんでした。

直訳すると、「オプション的な変数」!?ですが、通常の変数と何が違うのか
よくわかりませんでした。

解説を読むと 「optional Valueにはnil(NULL)が代入できるよ」ということらしいです。


// 定数
let const_hoge = "hello"

// 変数
var value_hoge = 123

// 変数(型指定)
var value :Int = 456

// optional 変数
var opt_value :Int? = 789

// ★ optional 変数には nil が代入できる
opt_value = nil

nilが代入できる?ってことはoptional valueっていうのは参照型(ポインタ)のこと?

という疑問が真っ先に浮かんだのですが、解説書にはそこのところが書かれていません。

ネットで調べてみると、どうも参照型とかそういうことではなくて、

データに値が入っているかもしれないしはいっていないかもしれないような状況で使う変数

という感じ見たいです。

例えばDBのカラムの「備考」みたいな。

要するに必須入力でないような項目にはoptinal valueを使うといいみたいです。

ちょっとスッキリしました。

Swfitはガベージコレクションコレクションの機能があるようですが、
GCにもカラム、変数のスコープやデータ型についても勉強する予定です。


ちなみにXcodeではplay groundというRubyでいうirbみたいなツールがあって
手軽に書いたコードの動作が確認できます。

f:id:simotin13:20140808063604p:plain

疑問に思ったことをすぐに解決するにはこういうインタラクティブな環境があると
とても助かります!

Swift逆引きハンドブック

Swift逆引きハンドブック