使用pow()时没有i32 / f64后备

时间:2015-05-23 13:12:16

标签: rust

以下内容:

4.pow(2)

我明白了:

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

我必须更加明确,例如:

4_i32.pow(2)

使用浮动,我得到了类似的问题(和解决方案),其中:

4.0.powf(2.0)

还必须明确:

4.0_f64.powf(2.0)

1 个答案:

答案 0 :(得分:11)

我认为这是因为只有在考虑了文字的所有约束时才会发生后退(并且它发现不是任何)。

在这种情况下,要了解4的类型,必须知道pow是什么。但pow是针对每种整数类型单独定义的。因此,要知道您正在谈论的pow,它必须知道4的类型。但要知道4的类型是什么......等等。