#はじめに
.swift
class DataEntity {
let id: Int
let name: String
let age: Int
init(id: Int, name: String, age: Int){
self.id = id
self.name = name
self.age = age
}
}
こんなのよく目にしますよね。これは一体何をしてるのかっていうことを簡単に説明します。
気持ち的には、インスタンス毎に固有の値を初期値として持たせたい時に使う感じだと思います。classの雛形に則ってインスタンスを生成し、その中身(プロパティ)の値はイニシャライザで与えます。
.swift
let data1 = DataEntity(id: 1, name: "Taro", age: 20)
let data2 = DataEntity(id: 2, name: "Hanako", age: 20)
こんな感じです。
要すると、イニシャライザとは__インスタンス生成時にプロパティに値を与えるための関数__です(って言って差し支えないと思います)。
こんな流れで解説していきます。
#イニシャライザ
上のサンプルコードで使い方はざっくりわかったと思うので、もう少し細かく見てみましょう。
.swift
init(id: Int, name: String, age: Int){
self.id = id
self.name = name
self.age = age
}
初見だとなんか書き方がよくわからないですね。ですが分かってしまえば大したことはないです。(多分)
self
キーワードは__インスタンスに型の内部からアクセスする時に使います__。
なので、やってることは
.swift
self.id = id という式は data.id = 1 ってしてるようなものです
つまり、__インスタンスのプロパティにinitの引数を代入している__ということです。
文字通り初期値を入れて初期化してるわけです。
大分しつこく解説してしまいましたがやってることはシンプルなのです。
終わり