nilについて

オプショナル値を持つ変数
返り値がnil

これ以降のnilの話はif文のとこに載せましたよん。

オプショナル値を持つ変数

なんとSwiftにはNULLとかそういう類のものがない。調べてみるとObjective CにはNULLとnilとNSNullがあるらしいが、Swiftはとにかくnil。その変数が値を持っていないことを表すらしい。
nilを変数で扱いたい場合通常の方法で宣言した変数にnilを代入することはできない。
どうやるかというと、(必ず型宣言をしたうえで)型名の後ろに「?」をつける。

var optionalString: String? = "Hello"
//optionalString: String = "Hello"だと次はエラーになる
optionalString = nil

var serverResponseCode: Int? = 404
serverResponseCode = nil

var surveyAnswer: String?	//初期値nilのString?型変数

Swift's optionals let you indicate the absene of a value for any type at all, without the need for special constants.
などとかいてあり、私の読みが正しければ、恐らくObjective Cとは違ってあらゆる場面で(ポインタだのクラスだのに限らず)nilという値がない印を使えるように……と作られた、たぶん。英語むずかちぃ。

返り値がnil

一部の関数は返り値がnilとなる場合がある。
例えばStringをIntに変えるtoInt()では対象の文字列がIntにできなかった場合(アルファベットを含んでいたとかそういうの)、nilが返ってくる。よって下のconvertedNumberは「数かnilを入れる変数」となるためInt?型として生まれることになる。間違ってもInt型ではない。

let possibleNumber = "123"
let convertedNumber = possibleNumber.toInt()

↑ PAGE TOP