Swift クラスの静的関数/変数とクラス関数/変数の違いは? 質問する

Swift クラスの静的関数/変数とクラス関数/変数の違いは? 質問する

次のコードは Swift 1.2 でコンパイルされます。

class myClass {
    static func myMethod1() {
    }
    class func myMethod2() {
    }
    static var myVar1 = ""
}

func doSomething() {
    myClass.myMethod1()
    myClass.myMethod2()
    myClass.myVar1 = "abc"
}

静的関数とクラス関数の違いは何ですか? どちらをいつ使用すればよいですか?

別の変数を定義しようとするとclass var myVar2 = ""、次のように表示されます。

クラスに格納されたプロパティはクラスではまだサポートされていません。'static' を意味しましたか?

この機能がサポートされると、静的変数とクラス変数 (つまり、両方がクラス内で定義されている場合)の違いはどうなるのでしょうか? どちらをいつ使用すればよいのでしょうか?

(Xcode6.3)

ベストアンサー1

staticどちらも、classクラスのインスタンスではなく、クラスにメソッドを関連付けます。違いは、サブクラスはclassメソッドをオーバーライドできますが、サブクラスはメソッドをオーバーライドできないことですstatic

classプロパティ同じように機能します (サブクラスでオーバーライドできます)。

おすすめ記事