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