次のコードは 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
プロパティ同じように機能します (サブクラスでオーバーライドできます)。