Rust 支持哪些隐式数字类型转换?

5
在Jim Blandy和Jason Orendorff的《Programming Rust》一书的第51页中,作者指出:

与C和C++不同,Rust几乎不会隐式执行任何数字转换。

为什么是“几乎”?Rust会执行哪些隐式数字转换?

2
没有想到其他的。另请参阅如何安全、习惯地在数字类型之间进行转换?。我的直觉是作者使用了“狡辩的话语”,因为证明否定是困难的,如果Rust决定添加一个,它容易出错。 - Shepmaster
@Shepmaster,考虑到证明否定的难度,我认为唯一公平的做法是将您的评论标记为答案,待其他人证明该评论有误后再作更改。 - Evan Carroll
1
唯一想到的是数字常量的处理方式。例如,let a: u8 = 1; 自动将 1 转换为 u8(“转换”加引号,因为严格来说它不是一个转换,但乍一看可能会这样认为)。 - Jmb
1个回答

1

像上面的评论一样,我不知道是否有这种隐式转换的例子,但是Rust by example书中提到了以下关于type casts的内容:

Rust在原始类型之间不提供隐式类型转换(强制转换)。但是,可以使用as关键字执行显式类型转换(转换)。

有一个Pre-RFC,在其中更详细地讨论了此主题,展示了关于Rust应该/不应该拥有此功能的正反论点。

有关更多信息,请查看From and Into特征。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接