假设你想在Rust中将Ratio< isize >
转换为f64
,e.g的。
use num::rational::Ratio;
pub fn foo() {
let a = Ratio::new(1,1);
let b = < cast a to f64 >;
}
最好的办法是什么?理想情况下,它应该是一个trait方法,以便与类型边界兼容。
为什么这不是显而易见的
对于许多有经验的Rust用户来说,解决方案可能是显而易见的,但在文档中很难找到。例如,在板条箱上运行f64
的文本搜索。num::rational::Ratio的离子寻呼不产生命中。搜索float
只返回从浮点转换为有理数的方法,反之亦然。初学者还可能搜索From
和Into
的实现,结果显示为空。最后,网络搜索并没有找到一个令人满意的答案,聊天GPT也没有。例如,其中一个最热门的命中只是定义了一个函数destructure并转换为浮点数。这并不是说你不可能找到答案,但如果你运气不好,你可能会花更多的时间去寻找。
1条答案
按热度按时间tktrz96b1#
方案一(通用)
更新以突出显示其中一条注解: www.example.com 。这种解决方案可以在更广泛的背景下使用。
溶液2(特定)
正如git仓库的issues中所指出的,有一个trait
ToPrimitive
提供了所需的功能:这对边界很好: