rust - 使用 pow() 时没有 i32/f64 回退

标签 rust

具有以下内容:

4.pow(2)

我得到:

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

我必须更明确一点,例如:

4_i32.pow(2)

对于 float ,我遇到了类似的问题(和解决方案),其中:

4.0.powf(2.0)

也必须是明确的:

4.0_f64.powf(2.0)

最佳答案

我相信这是因为只有在考虑了对文字的所有约束时才会发生回退(并且发现没有任何约束)。

在这种情况下,要知道4 的类型是什么,就必须知道pow 是什么。但是 pow 是为每个整数类型单独定义的。所以要知道你在说什么 pow,它必须知道 4 的类型是什么。但是要知道 4 的类型是什么……等等。

关于rust - 使用 pow() 时没有 i32/f64 回退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30413090/

相关文章:

rust - 使用生命周期参数为特征分离可变借位

rust - 如何在插入或更新值后获取 HashMap 中的键数?

rust - Rust试图维护自定义列表: cannot borrow `self.array` as mutable more than once at a time

rust - 如何在第一次调用 next() 时初始化迭代器字段?

rust - 如何为 &str 实现 Into<MyType>

rust - 有什么方法可以编写可以输出到 std::io::Write 或 std::fmt::Formatter 的函数吗?

rust - 有没有办法做unwrap_or_return一个错误(任何错误)

generics - 指定泛型参数属于一小组类型

methods - 从特征实现静态方法时名称解析错误

visual-studio-code - 如何在 Visual Studio Code 的 Rust 项目中查看外部库的源代码?