class level or struct level method in swift like static method in Java?

Is there a way to add method at class level or struct level in swift?

struct Card {
    var rank: Rank
    var suit: Suit
    func simpleDescription() -> String {
        return "The \(rank.simpleDescription()) of \(suit.simpleDescription())"
    }
}

Excerpt From: Apple Inc. “The Swift Programming Language.” iBooks. https://itun.es/us/jEUH0.l

Now if you wanted to add a method that creates a full deck of cards, what would be the best way to accomplish it?


To add a type-level method in a class, add the class keyword before the func declaration:

class Dealer {
    func deal() -> Card { ... }
    class func sharedDealer() -> Dealer { ... }
}

To add a type-level method in a struct or enum, add the static keyword before the func declaration:

struct Card {
    // ...
    static func fullDeck() -> Card[] { ... }
}

Both are generally equivalent to static methods in Java or class methods (declared with a +) in Objective-C, but the keyword changes based on whether you're in a class or struct or enum. See Type Methods in The Swift Programming Language book.


In Struct:

struct MyStruct {
    static func something() {
        println("Something")
    }
}

Called via:

MyStruct.something()

In Class

class MyClass {
    class func someMethod() {
        println("Some Method")
    }
}

called via:

MyClass.someMethod()

p 353

class SomeClass {
    class func someTypeMethod() {
        // type method implementation goes here
    }
}
SomeClass.someTypeMethod()

Excerpt From: Apple Inc. “The Swift Programming Language.” iBooks. https://itun.es/us/jEUH0.l