swift中的类级或结构级方法与Java中的静态方法类似?
有没有办法在swift中添加类级或结构级的方法swift中的类级或结构级方法与Java中的静态方法类似?,swift,Swift,有没有办法在swift中添加类级或结构级的方法 struct Card { var rank: Rank var suit: Suit func simpleDescription() -> String { return "The \(rank.simpleDescription()) of \(suit.simpleDescription())" } } 摘自:苹果公司《Swift编程语言》。iBooks 现在,如果您想添加一个创建一整
struct Card {
var rank: Rank
var suit: Suit
func simpleDescription() -> String {
return "The \(rank.simpleDescription()) of \(suit.simpleDescription())"
}
}
摘自:苹果公司《Swift编程语言》。iBooks
现在,如果您想添加一个创建一整套卡片的方法,那么实现它的最佳方法是什么
class SomeClass {
class func someTypeMethod() {
// type method implementation goes here
}
}
SomeClass.someTypeMethod()
摘自:苹果公司《Swift编程语言》。iBooks 在结构中:
struct MyStruct {
static func something() {
println("Something")
}
}
致电:
MyStruct.something()
MyClass.someMethod()
课堂上
class MyClass {
class func someMethod() {
println("Some Method")
}
}
致电:
MyStruct.something()
MyClass.someMethod()
要在类中添加类型级方法,请在
func
声明之前添加class
关键字:
class Dealer {
func deal() -> Card { ... }
class func sharedDealer() -> Dealer { ... }
}
struct Card {
// ...
static func fullDeck() -> Card[] { ... }
}
要在结构或枚举中添加类型级方法,请在
func
声明之前添加static
关键字:
class Dealer {
func deal() -> Card { ... }
class func sharedDealer() -> Dealer { ... }
}
struct Card {
// ...
static func fullDeck() -> Card[] { ... }
}
这两种方法通常相当于Java中的静态方法或Objective-C中的类方法(用a+声明),但关键字会根据您是在类、结构还是枚举中而变化。请参阅Swift编程语言手册。这一功能在6.3中进行了更新,值得一提的是:Cheerclass同时具有“静态”和“类”功能。请参阅下面的答案以了解解释@IrshadQureshi-有很多不同之处,在我看来最重要的是结构是ValueType,类是ValueTypeReferenceType@IrshadQureshi结构不能像类那样扩展子类可以重写类func,这在静态方法中是不可能的。