swift中的类级或结构级方法与Java中的静态方法类似?

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 现在,如果您想添加一个创建一整

有没有办法在swift中添加类级或结构级的方法

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,这在静态方法中是不可能的。