W Swift czasami słowa kluczowe są zwykłymi słowami kluczowymi, a niektóre inne zaczynają się od @
. Na przykład: weak
, unowned
, inout
, class
są proste Ale @final
, @lazy
zaczyna się od @
.Słowa kluczowe z i bez @ w Swift
Czasami mamy nawet jedno i drugie! prefix
i @prefix
, infix
i na przykład.
Nie jest to całkowicie dziedziczenie w Objective-C, ponieważ mamy @class
, a nie class
w Objective-C. Mogłem zrozumieć, dlaczego mamy class
, a nie @class
w Swift, ale ponieważ mamy @final
lub @lazy
, pomyślałem, że powinien to być @weak
, a nie weak
.
Dlaczego ten wybór? Czy jest jakiś intuicyjny sposób, który powinien powiedzieć: "hej, to jest logiczne, że to słowo kluczowe zaczyna się od @
?
Nawet jeśli myślę z myślą o perspektywie preprocesora, nie jest oczywiste, że @
nazwałoby to specyficzny preprocesor przed kompilacji (np @final
nie jest to rodzaj dyrektywy preprocesora).
Nie jesteś sam. Sam Apple nie wiedział/nie zna różnicy między nimi. Ostatnio zmienili '@ final' na' final', '@ lazy' na' lazy', itd. – Ethan
OK, dzięki, znalazłem, że w wydaniu beta 4 wydania XCode 6: "The' @ final', '@lazy Atrybuty ',' @ optional' i' @ required' zostały przekonwertowane na modyfikatory deklaracji, określone bez znaku @. " Jeśli napiszesz odpowiedź jako normalną, to ją przegłosuję :) –
W notatkach dotyczących wersji beta 5: "Atrybuty' @ prefix', '@ infix' i' @ postfix' zostały zmienione na modyfikatory deklaracji, więc nie są już pisane znakiem @ – Ethan