init
class Sample {
static let sample:Sample = .init()
private init() {}
}
ここではSampleクラスの中で、そのインスタンスを内部にあるsampleに代入している。その際、.init()
がイニシャライザとして使われており、ドットの前は self = Sample を指す。動作の上では.init()
で十分で、private initはなかったとしても問題ない。ただし、ここではスコープを限定するためにinitに対してprivateという属性をつけている。
普段インスタンスを別クラスからしか作った試しがなく、自身をクラス内の変数にインスタンスとして代入するというのはみたことがありませんでした。またinitメソッドも.init()
のようには作ったことがなく、スペースを取って別物のように扱っていたので、インスタンスを作る際に.init()
で済ませられるのはとても新鮮に感じられました。
追記していきます。