Swiftで仮引数を持つイニシャライザをスマートに書く


Swiftで仮引数を持つイニシャライザをスマートに書く方法です。 仮引数がついたイニシャライザをもち、イニシャライズ時の値を定数として保持する Struct を作る時、private(set) var name = “snorlax” を使うと短くスマートに書くことができます。 プロパティが増えてもイニシャライザを編集する必要が無くなります。

Playground.swift

import Foundation

struct Pokemon {
    let name: String

    init(name: String = "snorlax") {
        self.name = name
    }
}

struct Pokemon {
    private(set) var name = "snorlax"
}

let pokemon = Pokemon(name: "slowpoke")
// Cannot assign to property: 'name' setter is inaccessible
// pokemon.name = "snorlax"
print(pokemon.name)