Rozumiem, jak działają opcje, ale to rzuca mnie za pętlę. Mam zmienną o nazwie num
i chcę go zwiększyć, więc zrobiłem następujące:Swift inkrement Int! nie działa
var num:Int! = 0
num++ //ERROR - Unary operator ++ cannot be applied to an operand of type Int!
Ale z jakiegoś powodu Swift nie pozwoli mi zwiększyć siła odwinęła Int
, mimo że ma być traktowany jak zwykły Int
z możliwością zerowania za kulisami. Tak próbowałem następujące, i to działało:
var num:Int! = 0
num = num + 1 //NO ERROR
Jednakże, na podstawie komunikatu o błędzie Dało mi, próbowałem następujące, aby operator przyrost nadal działa:
var num:Int! = 0
num!++ //NO ERROR
Moje pytanie brzmi: dlaczego pierwszy bit łamie się, gdy drugi i trzeci bit kodu nie? Ponadto, ponieważ num
to Int!
, czy nie powinienem móc traktować go jak zwykłego Int
? Ostatecznie, ponieważ Int!
ma być traktowany jak zwykły Int
, jak mogę go rozwinąć w trzecim przykładzie? Dzięki.
Od momentu zainicjowania go od razu do "0", nie musi być opcjonalne. Możesz mieć 'var num = 0' bez potrzeby inicjalizacji – Jack
Dzięki za informację, ale niezależnie, dlaczego mój kod jest dziwny? – Aderis
@JackWu: Ustawienie opcjonalne oznacza, że możesz ustawić go na zero, jeśli masz ku temu powód. – gnasher729