Próbuje grać z rozszerzeniami, ale mam problemy z uzyskaniem następujących pracy:Dlaczego to rozszerzenie typu podstawowego nie działa?
let value = -13
abs(value)
extension Int {
var abs:Int {
return abs(self) // -> Cannot invoke 'abs' with an argument list of type '(Int)'
}
}
value.abs
Błąd kompilacji jest dziwne, ponieważ wyraźnie uruchamia funkcję abs()
bezpośrednio powyżej z Int
jako argument. Nadal mam kilka żarówek, które można wywołać dla generyków, jak sądzę. Oświeć mnie.
Aha! Dziękuję obojgu. Teraz rozumiem. Pierwsza osoba, która edytuje swoją odpowiedź, pokazuje, że mogę skorygować wolną funkcję, ponieważ 'Swift.abs (self)' otrzymuje 'accept': D –
Poza tym, dlatego nienawidzę ukrytego ja. –