LoginSignup
2
3

More than 1 year has passed since last update.

イニシャライザの基本

Posted at

はじめに

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の雛形に則ってインスタンスを生成し、その中身(プロパティ)の値はイニシャライザで与えます。

let data1 = DataEntity(id: 1, name: "Taro", age: 20)
let data2 = DataEntity(id: 2, name: "Hanako", age: 20)

こんな感じです。

要すると、イニシャライザとはインスタンス生成時にプロパティに値を与えるための関数です(って言って差し支えないと思います)。

こんな流れで解説していきます。

イニシャライザ

上のサンプルコードで使い方はざっくりわかったと思うので、もう少し細かく見てみましょう。

init(id: Int, name: String, age: Int){
    self.id = id
    self.name = name
    self.age = age
}

初見だとなんか書き方がよくわからないですね。ですが分かってしまえば大したことはないです。(多分)

selfキーワードはインスタンスに型の内部からアクセスする時に使います
スクリーンショット 2021-05-31 0.36.21.png
なので、やってることは

self.id = id という式は data.id = 1 ってしてるようなものです

つまり、インスタンスのプロパティにinitの引数を代入しているということです。
文字通り初期値を入れて初期化してるわけです。

大分しつこく解説してしまいましたがやってることはシンプルなのです。

終わり

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3