2015-05-23 8 views
9

Mit folgendem:Keine i32/f64 Notlösung, wenn pow() verwendet

4.pow(2) 

ich:

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

Ich habe mehr explizit darüber sein, zum Beispiel:

4_i32.pow(2) 

Mit Schwimmer, bekomme ich ein ähnliches Problem (und Lösung), wo:

Muss auch explizit sein:

4.0_f64.powf(2.0) 

Antwort

11

Ich glaube, das liegt daran, dass der Rückfall geschieht nur, wenn alle Einschränkungen für die wörtliche berücksichtigt worden sind (und es findet, dass es nicht sind vorhanden).

In diesem Fall, um zu wissen, was der Typ 4 ist, muss es wissen, was pow ist. Aber pow ist separat für jeden Integraltyp definiert. Um zu wissen, was pow Sie sprechen, muss es wissen, was der Typ 4 ist. Aber um zu wissen, was der Typ 4 ist ... und so weiter.