ども木村です。この記事ではSwiftにおけるイニシャライザ(Initializer)の使い方について解説します。
本記事のサンプルスクリプトはPlaygroundで実行しながら見ていただくことを推奨しています。Playgroundの導入/使い方についてはこちらを参考ください。
実行環境
本記事の実行環境は以下になっています。
- Xcode Version 12.3
- Playgrounds Version 3.4.1
- macOS Version 11.4
イニシャライザ(Initializer)の使い方
構造体にイニシャライザを登録することで、最初に構造体が実体化された時のデフォルトの値を設定することができます。
例えば、以下のようなパラメータを持っている構造体があるとします。
struct Car {
var maker: String
}
通常上記の構造体を呼び出す場合、以下のようにパラメータに値の設定が必要になると思います。
var car = Car(maker: "TOYOTA")
しかし、以下のようにイニシャライザを実装すれば、呼び出し時にパラメーターが設定されなかった場合デフォルト値を設定することが可能です。
struct Car {
var maker: String
init() {
maker = "NoName"
}
}
パラメータを設定せずに呼び出してみてください。デフォルトの「NoName」が返却されます。
var car = Car()
print(car.maker)
イニシャライザに引数を設定して構造体の変数に設定したい場合は以下のように実装します。
struct Car {
var maker: String
init(maker: String) {
self.maker = maker
}
}
var car = Car(maker: "test")
print(car.maker)
「self」を設定することで、上記コードの2行目の変数「maker」に対して、引数の値を設定しています。
「var maker: String」を以下のようにprivateを付与することで他の構造体から参照できないようアクセス制御することが可能です。
struct Car {
private var maker: String
init(maker: String) {
self.maker = maker
}
}
最新のSwift勉強方法まとめ
勉強方法を知る
書籍で勉強する
Udemyで勉強する
スポンサーリンク