相关疑难解决方法(0)

如何安全地和惯用地在数字类型之间进行转换?

从(比方说)a转换usize为a 的惯用方法是u32什么?

例如,铸造用4294967295us as u32作品和类型强制转换锈参考文档

数值可以转换为任何数字类型.原始指针值可以转换为任何整数类型或原始指针类型.任何其他强制转换都不受支持,无法编译.

但是4294967296us as u32会默默地溢出并给出0的结果.

我发现ToPrimitiveFromPrimitive提供了很好的功能ToPrimitive,但它们目前被标记为不稳定:

FromPrimitive

什么是在数字(和指针)类型之间转换的惯用(和安全)方式?

更新:to_u32() -> Option<u32>/的可变大小#[unstable(feature = "core", reason = "trait is likely to be removed")]是我问这个问题的一个原因 - 原始场景是我想转换isizeusize所以我可以代表一个树u32(例如usize,然后获得节点2的祖父将be Vec<u32>),我想知道如果let t = Vec![0u32, 0u32, 1u32]小于32位会如何失败.

casting numbers rust

38
推荐指数
1
解决办法
3万
查看次数

使用货物时如何使用调试信息获取发布版本?

以下命令

$ cargo build
Run Code Online (Sandbox Code Playgroud)

生成带有调试信息的非优化构建.反之,

$ cargo build --release
Run Code Online (Sandbox Code Playgroud)

生成优化的构建,无需调试信息.

有没有办法调试信息生成优化的构建?我需要这个来获得有意义的分析信息.

rust rust-cargo

34
推荐指数
2
解决办法
1万
查看次数

可以使用Cargo在发布模式下构建测试吗?

我正在使用cargo build --release在发布配置中构建我的项目并cargo test构建和运行我的测试.

但是,我还想在发布模式下构建我的测试; 这可以用货物完成吗?

rust rust-cargo

12
推荐指数
1
解决办法
3054
查看次数

调试符号会影响 Rust 的性能吗?

我正在运行使用调试符号编译的 Rust 实用程序。

cargo build 
# without the "--release" flag   
Run Code Online (Sandbox Code Playgroud)

与用 C 编写的相同实用程序相比,这些确实很慢。

调试符号是否可能影响性能?

performance debug-symbols rust

-1
推荐指数
1
解决办法
1878
查看次数

标签 统计

rust ×4

rust-cargo ×2

casting ×1

debug-symbols ×1

numbers ×1

performance ×1