Swiftのイニシャライザには4つの種類がある
①デフォルトイニシャライザ
②メンバーワイズイニシャライザ
③カスタムイニシャライザ
④失敗可能イニシャライザ
デフォルトイニシャライザとは
デフォルトイニシャライザとはデフォルトでストアドプロパティが入っているので引数がなくてもインスタンス化できるイニシャライザのこと。
暗黙的にイニシャライザが実装される
struct Fish {
var area = "北海道"
var price = 3000
}
メンバーワイズイニシャライザとは
構造体にしか使われないイニシャライザ。型指定のみのデータしか入っていない場合に使われる。
通常はinit()
で初期化処理をしなくてはならないが、この場合は書かなくてもインスタンス化できてしまう
struct Fish {
var area:String
var price:Int
//init(area:String,price:Int) {
//self.area = area
//self.price = price
//}
通常はコメントアウト部分必要だが、なくてもいける
}
let fish = Fish(area:"北海道",price:3000)
カスタムイニシャライザとは
通常のinit()
を使って初期化処理をするイニシャライザのこと
失敗可能イニシャライザとは
文字通り失敗可能なイニシャライザ。
struct Fish{
var area:String
init?(area:String?) {
gurad let a = area else {//アンラップする処理
return nil//何も入っていなければnilを返す。
}
self.area = a
}
}
初期化処理時にinit?
で値が入ってこない場合は処理をスキップするようにし、その場合は後のguard let else構文もしくはif let などでアンラップしてあげてnilをかえしてあげる。