有没有办法在swift中在类级别或结构级别添加方法?
struct Card {
var rank: Rank
var suit: Suit
func simpleDescription() -> String {
return "The \(rank.simpleDescription()) of \(suit.simpleDescription())"
}
}
摘自:Apple Inc.“The Swift Programming Language。”iBooks。 https://itun.es/us/jEUH0.l
现在,如果您想添加一个创建完整卡片组的方法,那么最好的方法是什么?
答案 0 :(得分:88)
要在类中添加类型级方法,请在class
声明之前添加func
关键字:
class Dealer {
func deal() -> Card { ... }
class func sharedDealer() -> Dealer { ... }
}
要在struct或enum中添加类型级方法,请在static
声明之前添加func
关键字:
struct Card {
// ...
static func fullDeck() -> Card[] { ... }
}
两者通常等同于Java中的静态方法或Objective-C中的类方法(用+声明),但关键字会根据您是在类,结构还是枚举中而更改。请参阅 Swift编程语言一书中的Type Methods。
答案 1 :(得分:30)
在结构中:
struct MyStruct {
static func something() {
println("Something")
}
}
通过:
调用MyStruct.something()
在课堂上
class MyClass {
class func someMethod() {
println("Some Method")
}
}
来自:
MyClass.someMethod()
答案 2 :(得分:8)
p 353
class SomeClass {
class func someTypeMethod() {
// type method implementation goes here
}
}
SomeClass.someTypeMethod()
摘自:Apple Inc.“The Swift Programming Language。”iBooks。 https://itun.es/us/jEUH0.l