Mnożenie liczb całkowitych


Jestem pewien, że brakuje mi czegoś bardzo, bardzo oczywistego, ale czy ktoś może mi powiedzieć, dlaczego mam problem z pomnożeniem dwóch
Integers
? Poniższy kod:
let twenty: Integer = 20
let ten: Integer = 10
let result: Integer = twenty * ten

przedstawia błąd
Nie można znaleźć przeciążenia dla „*”, które akceptuje podane argumenty
.
Inne pytania dotyczące tego samego błędu są spowodowane próbą rozmnażania różnych typów razem, ale oczywiście jest to zarówno jak liczby całkowitej ?
(PS: rzeczywisty kod, który próbuję uruchomić, to
var value = self.value * 10
, ale rozszerzyłem go do próbkowania podczas debugowania, aby absolutnie upewnić się, że używane są właściwe typy)
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

zamiast tego użyj
Int
.
Integer
to protokół.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Integer
to protokół, a nie typ. Zamiast tego użyj
Int
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jak już wspomniano, liczba całkowita jest protokołem, a nie typem.
W Twojej sytuacji nie musisz wykonywać jawnego typu, ponieważ ma on niejawne rzutowanie.
To wystarczy
let twenty = 20
let ten = 10
let result = twenty * ten NSLog("%d", result)

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się