self & super

1892 ワード

self

  • は、インスタンスの特殊な属性に近づくために使用されます.
  • ユーザーが自分で定義していなくても、コンパイラは自動的に追加されます.
  • インスタンスの内部アクセスから、このインスタンス
  • にアクセスすることができる.
  • 型メンバーの内部では、形式自体に近い.
  • self.propertyName-インスタンスプロパティへのアクセス
    self.メソッド()-インスタンスメソッドを呼び出すときに使用
    self[index]-サブスクリプトを呼び出す
    self.Init(parameters)-同じフォーマットの他のジェネレータを呼び出す

    上記のコードに示すように,メソッド内部の属性名とパラメータ名が同じであれば,いずれもパラメータとして認識する.
    この場合selfキーワードを使用して属性とパラメータを区別します.

    上記のコードに示すように、モジュール内でインスタンスメンバー(ストレージ・プロシージャ)にアクセスするにはfirstおよびsecondをキャプチャする必要があります.インスタンスプロパティにアクセスするにはselfを使用する必要があります.
    static let typeTest = "" // 저장 타입 프로퍼티
    
    static func selfTypeTest() { // 타입 메소드
       self.width // width의 타입 속성은 존재하지 않는다.
       self.typeTest // 타입 프로퍼티이므로 접근 가능
    上記のコードに示すように、静的キーワードのタイプpropertyを使用する方法、すなわち、タイプメンバー内でselfを使用してアクセスする場合、タイプ自体からアクセスします.

    super

  • 継承に関係するため、クラスでのみ使用できます.
  • スーパークラスに近いメンバーに使用されます.
  • super.propertyName-インスタンスプロパティへのアクセス
    super.メソッド()-インスタンスメソッドを呼び出すときに使用
    super[index]-サブスクリプトを呼び出す
    super.Init(parameters)-同じフォーマットの他のジェネレータを呼び出す