2015-05-23 11 views
9

z następującymi:Nie I32/F64 awaryjna przy użyciu pow()

4.pow(2) 

uzyskać:

error: no method named `pow` found for type `_` in the current scope 

muszę być bardziej wyraźne o nim, np:

4_i32.pow(2) 

W przypadku elementów pływających pojawia się podobny problem (i rozwiązanie), gdzie:

4.0.powf(2.0) 

Musi być również wyraźne:

4.0_f64.powf(2.0) 

Odpowiedz

11

wierzę, to dlatego, że awaryjna zdarza się tylko wtedy, gdy wszystkie ograniczenia w dosłownym zostały uznane (i stwierdzi, że nie są tam istnieje).

W tym przypadku, aby wiedzieć, jaki jest typ 4, musi on wiedzieć, co to jest pow. Ale pow jest zdefiniowany osobno dla każdego typu integralnego. Aby wiedzieć, o czym mówisz, musisz wiedzieć, jaki jest typ 4. Ale żeby wiedzieć, jaki jest typ 4 ... i tak dalej.