Jak to jest z zamykaniem w swift? Chodzi mi o ; Jeżeli będę używał (przyzwyczajenie z nauki c++/javy) to jest to jakiś mega błąd? Bo widzę że xcode puszcza
I mógłby ktoś wytłumaczyć łopatologicznie po co wszędzie się wstawia !(wykrzyknik)
Na przykład: currentNumber = currentNumber * 10 + Float(Int(sender.titleLabel!.text!)!)
jest titleLabel i wykrzyknik text wykrzyknik )wykrzyknik)
@Defuzer: wykrzyknik jest by zrobić unwrap zmiennej która jest optional czyli nie jest określony jej typ. Stawiając wykrzyknik nadajesz jej ostateczny (nie jestem pewien) typ
@Defuzer: a średniki źle wyglądają, nie używaj ich wcale bo kłóci się to z style guidami. A optionals to podstawa, musisz ogarnąć jak zaczynasz cokolwiek w swifcie pisać ( ͡°͜ʖ͡°)
Optional nie wpływa na to czy typ jest określony (bo jest określony, np Int!) tylko czy ma wartość czy nie ("nil"). Ogólnie używanie ! jest jak wsadzanie ręki do maszynki do mielenia mięsa przed sprawdzeniem czy ona chodzi - używajcie tego tylko, gdy nie możecie inicjalizować wartości w konstruktorze (np. outlety z Interface Buildera), ew w paru innych wypadkach - ale praktycznie zawsze lepiej wykorzystać typ nie-optional
Jak to jest z zamykaniem w swift? Chodzi mi o ;
Jeżeli będę używał (przyzwyczajenie z nauki c++/javy) to jest to jakiś mega błąd? Bo widzę że xcode puszcza
I mógłby ktoś wytłumaczyć łopatologicznie po co wszędzie się wstawia !(wykrzyknik)
Na przykład: currentNumber = currentNumber * 10 + Float(Int(sender.titleLabel!.text!)!)
jest titleLabel i wykrzyknik
text wykrzyknik
)wykrzyknik)
ale ja wiem mało ze Swifta, poczytaj sobie lepiej sam
@Sacramoni: to czytałem, trochę głupie mi się to wydaje ale trudno ( ͡º ͜ʖ͡º)
Panowie: ? oraz ! jest do typu (dokładniej enuma) optional. Jest to syntactic sugar dla https://developer.apple.com/library/tvos/documentation/Swift/Reference/Swift_Optional_Enumeration/index.html
Optional nie wpływa na to czy typ jest określony (bo jest określony, np Int!) tylko czy ma wartość czy nie ("nil").
Ogólnie używanie ! jest jak wsadzanie ręki do maszynki do mielenia mięsa przed sprawdzeniem czy ona chodzi - używajcie tego tylko, gdy nie możecie inicjalizować wartości w konstruktorze (np. outlety z Interface Buildera), ew w paru innych wypadkach - ale praktycznie zawsze lepiej wykorzystać typ nie-optional