关于ios:static vs class as class variable / method(Swift)

static vs class as class variable/method (Swift)

我知道static关键字用于声明structenum等中的类型变量/方法。

但今天我发现它也可以在class实体中使用。

1
2
3
4
5
6
7
8
class foo {
  static func hi() {
    println("hi")
  }
  class func hello() {
    println("hello")
  }
}

static关键字在class实体中的用途是什么?

谢谢!

编辑:我指的是Swift 1.2,如果有什么区别的话。


From the XCODE 3 beta 3 release notes:

"static" methods and properties are now allowed in classes (as an
alias for"class final").

SWIFT 1.2,EDOCX1&0

1
2
3
4
5
class foo {
  static func hi() {
    println("hi")
  }
}

是一种类型的方法(I.E.一种被称为ITSELF的方法)这也是最后的(I.E.不可能在一个亚类中被超越)。


在教室里,它的目的完全相同。然而,在SWIFT 1.2(Currently in Beta)static之前,并没有可用——The Alternate classSpecifier was made available for declaring static methods and computed properties,but not stored properties.


In Swift 5,I use type(of: self)to access class properties dynamically:

ZZU1

Prints 2.

在SWIFT 5.1中,我们应该能够使用Self,有一笔资本,在EDOCX1〕〔5〕。