有没有办法在swift中的类级别或结构级别添加方法?
struct Card {
var rank: Rank
var suit: Suit
func simpleDescription() -> String {
return "The \(rank.simpleDescription()) of \(suit.simpleDescription())"
}
}
Run Code Online (Sandbox Code Playgroud)
摘录自:Apple Inc."The Swift Programming Language."iBooks.https://itun.es/us/jEUH0.l
现在,如果你想添加一个创建完整卡片组的方法,那么最好的方法是什么呢?
ric*_*ter 88
要在类中添加类型级方法,请class在func声明之前添加关键字:
class Dealer {
func deal() -> Card { ... }
class func sharedDealer() -> Dealer { ... }
}
Run Code Online (Sandbox Code Playgroud)
要在结构或枚举中添加类型级方法,请static在func声明之前添加关键字:
struct Card {
// ...
static func fullDeck() -> Card[] { ... }
}
Run Code Online (Sandbox Code Playgroud)
两者通常等同于Java中的静态方法或Objective-C中的类方法(用+声明),但关键字根据您是在类,结构还是枚举中而更改.见类方法中的斯威夫特编程语言的书.
Log*_*gan 30
指导:
struct MyStruct {
static func something() {
println("Something")
}
}
Run Code Online (Sandbox Code Playgroud)
叫来:
MyStruct.something()
Run Code Online (Sandbox Code Playgroud)
在班上
class MyClass {
class func someMethod() {
println("Some Method")
}
}
Run Code Online (Sandbox Code Playgroud)
通过:
MyClass.someMethod()
Run Code Online (Sandbox Code Playgroud)
第353页
class SomeClass {
class func someTypeMethod() {
// type method implementation goes here
}
}
SomeClass.someTypeMethod()
Run Code Online (Sandbox Code Playgroud)
摘录自:Apple Inc."The Swift Programming Language."iBooks.https://itun.es/us/jEUH0.l