以下代码在 Swift 1.2 中编译:
class myClass {
static func myMethod1() {
}
class func myMethod2() {
}
static var myVar1 = ""
}
func doSomething() {
myClass.myMethod1()
myClass.myMethod2()
myClass.myVar1 = "abc"
}
static 函数和class 函数有什么区别?我应该使用哪一个,什么时候使用?
如果我尝试定义另一个变量 class var myVar2 = ""
,它说:
Class stored properties not yet supported in classes; did you mean 'static'?
当支持此功能时,static 变量和 class 变量之间有什么区别(即,当两者都在类中定义时)?我应该使用哪一个,什么时候使用?
(Xcode 6.3)
最佳答案
static
和 class
都将方法与类相关联,而不是将类的实例相关联。区别在于子类可以重写class
方法;它们不能覆盖 static
方法。
class
属性在理论上将以相同的方式运行(子类可以覆盖它们),但它们在 Swift 中尚不可能。
关于function - Swift 类中的静态与类函数/变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29636633/