class level or struct level method in swift like static method in Java?
在swift中有没有在类级别或结构级别添加方法的方法?
1 2 3 4 5 6 7 | struct Card { var rank: Rank var suit: Suit func simpleDescription() -> String { return"The \(rank.simpleDescription()) of \(suit.simpleDescription())" } } |
摘自:苹果公司。"Swift编程语言。"iBooks。网址:https://itun.es/us/jeuh0.l
现在,如果你想添加一种方法来创建一副完整的卡片,那么最好的方法是什么呢?
要在类中添加类型级别方法,请在
1 2 3 4 | class Dealer { func deal() -> Card { ... } class func sharedDealer() -> Dealer { ... } } |
要在结构或枚举中添加类型级方法,请在
1 2 3 4 | struct Card { // ... static func fullDeck() -> Card[] { ... } } |
这两种方法都相当于Java中的静态方法或类方法(在+中用+声明),但关键字的变化取决于您是否在类、结构或枚举中。参见Swift编程语言手册中的类型方法。
在Struct:
1 2 3 4 5 | struct MyStruct { static func something() { println("Something") } } |
调用通过:
1 | MyStruct.something() |
课堂上
1 2 3 4 5 | class MyClass { class func someMethod() { println("Some Method") } } |
调用通过:
1 | MyClass.someMethod() |
P 353
1 2 3 4 5 6 | class SomeClass { class func someTypeMethod() { // type method implementation goes here } } SomeClass.someTypeMethod() |
摘自:苹果公司。"Swift编程语言。"iBooks。网址:https://itun.es/us/jeuh0.l