Methods

昨日に引き続き https://docs.swift.org/swift-book/LanguageGuide/Methods.html を読む。

  • 構造体と列挙型にメソッドを定義できることがCやObjective-Cとの大きな違い
  • どの型のインスタンスにも self と呼ばれる暗黙のプロパティがある
  • 構造体と列挙型ではmutating キーワードを func の前に書いてオプトインする
  • 構造体と列挙型ではmutatingインスタンスメソッドはletしたインスタンスでは呼べない
  • mutatingインスタンスメソッドでself書き換え self = Point(x: x + deltaX, y: y + deltaY)
  • 型メソッドは要するにObjective-Cでのクラスメソッドのこと
  • 型メソッドでのselfは型そのものを参照する
  • 返り値を無視しても間違いじゃないメソッドには @discardableResult 属性

self はプロパティやったんや… this ポインタのキーワードが違うだけやなかった… という初めて知る事実に驚愕