Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 69.6MB ·虚拟内存 1299.5MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
对数值字面量,只要把类型作为后缀加上去,就完成了类型说明。比如指定字面量 42 的 类型是 i32,只需要写 42i32。
无后缀的数值字面量,其类型取决于怎样使用它们。如果没有限制,编译器会对整数使用 i32,对浮点数使用 f64。
fn main() { // 带后缀的字面量,其类型在初始化时已经知道了。 let x = 1u8; let y = 2u32; let z = 3f32; // 无后缀的字面量,其类型取决于如何使用它们。 let i = 1; let f = 1.0; // `size_of_val` 返回一个变量所占的字节数 println!("size of `x` in bytes: {}", std::mem::size_of_val(&x)); println!("size of `y` in bytes: {}", std::mem::size_of_val(&y)); println!("size of `z` in bytes: {}", std::mem::size_of_val(&z)); println!("size of `i` in bytes: {}", std::mem::size_of_val(&i)); println!("size of `f` in bytes: {}", std::mem::size_of_val(&f)); }
上面的代码使用了一些还没有讨论过的概念。心急的读者可以看看下面的简短解释:
Rust 的类型推断引擎是很聪明的,它不只是在初始化时看看右值(r-value)的类型而已,它还会考察变量之后会怎样使用,借此推断类型。这是一个类型推导的进阶例子:fn main() { // 因为有类型说明,编译器知 ...