2015-03-23 16 views
10

wiem, że static słów kluczowych służy do deklarowania zmiennej typu/metody w struct, enum itpstatyczne vs klasy jako zmienną klasy/metody (SWIFT)

ale dziś okazało się, że mogą być również wykorzystywane w class podmiotu.

class foo { 
    static func hi() { 
    println("hi") 
    } 
    class func hello() { 
    println("hello") 
    } 
} 

Co znajduje zastosowanie static słowa kluczowego w class podmiotu?

Dzięki!

edit: mam na myśli Swift 1.2 jeśli to czyni żadnej różnicy

+0

W której wersji Xcode próbujesz tego kodu? –

+0

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html#//apple_ref/doc/uid/TP40014097-CH15-ID241? – Larme

Odpowiedz

18

Z Xcode 3 beta 3 Release Notes:

„statyczne” Metody i właściwości są obecnie dozwolone w zajęciach (jak alias dla "klasy końcowej").

Więc Swift 1.2 hi() zdefiniowany jako

class foo { 
    static func hi() { 
    println("hi") 
    } 
} 

to metoda typ (czyli metoda, która jest wywoływana samego rodzaju) który również jest końcowy (czyli nie może być zastąpione w podklasie).

+0

dobry połów. Dzięki! –

3

W klasach jest używany dokładnie w tym samym celu. Jednak zanim Swift 1.2 (obecnie w wersji beta) nie był dostępny static - udostępniono alternatywny specyfikator class dla zadeklarowania statycznych metod i obliczonych właściwości, ale nie przechowywanych właściwości.

Powiązane problemy