programar - ¿Método de nivel de clase o nivel de estructura en swift como método estático en Java?
swift para windows (3)
¿Hay una manera de agregar método a nivel de clase o nivel de estructura en swift?
struct Card {
var rank: Rank
var suit: Suit
func simpleDescription() -> String {
return "The /(rank.simpleDescription()) of /(suit.simpleDescription())"
}
}
Extracto de: Apple Inc. "El lenguaje de programación Swift". IBooks. https://itun.es/us/jEUH0.l
Ahora, si quisiera agregar un método que cree un mazo de cartas completo, ¿cuál sería la mejor manera de lograrlo?
En Struct:
struct MyStruct {
static func something() {
println("Something")
}
}
Llamado a través de:
MyStruct.something()
En la clase
class MyClass {
class func someMethod() {
println("Some Method")
}
}
llamado a través de:
MyClass.someMethod()
Para agregar un método de nivel de tipo en una clase, agregue la palabra clave de class
antes de la declaración de la func
:
class Dealer {
func deal() -> Card { ... }
class func sharedDealer() -> Dealer { ... }
}
Para agregar un método de nivel de tipo en una estructura o enumeración, agregue la palabra clave static
antes de la declaración de la func
:
struct Card {
// ...
static func fullDeck() -> Card[] { ... }
}
Ambos son generalmente equivalentes a los métodos estáticos en Java o métodos de clase (declarados con un +) en Objective-C, pero la palabra clave cambia en función de si está en una clase o estructura o enumeración. Ver Métodos de Tipo en el libro The Swift Programming Language .
p 353
class SomeClass {
class func someTypeMethod() {
// type method implementation goes here
}
}
SomeClass.someTypeMethod()
Extracto de: Apple Inc. "El lenguaje de programación Swift". IBooks. https://itun.es/us/jEUH0.l