字面量
数字文本可以通过添加类型作为后缀注释类型, 目前除了%uA0usize
%uA0使用%uA0usize
%uA0后缀,以及%uA0isize
%uA0使用%uA0isize
%uA0作为后缀。
后缀的数字文字类型将取决于如何使用它们。如果没有约束存在,编译器将使用%uA0i32
%uA0为整数, %uA0f64
%uA0作为浮点数。
fn main() { // Suffixed literals, their types are known at initialization let x = 1u8 let y = 2u32 let z = 3f32 // Unsuffixed literal, their types depend on how they are used let i = 1 let f = 1.0 // `size_of_val` returns the size of a variable in bytes 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)) }
有在前面的代码中使用一些概念,但没有解释,这里有一个简单的解释:
-
fun(&foo)
%uA0是用来引用参数传递给函数,%uA0而不是通过%uA0(fun(foo)
)%uA0值. 详情请参阅%uA0借用. -
std::mem::size_of_val
%uA0是一个函数,调用它的完整路径。代码可以分成称为模块的逻辑单元。在这种情况下,该%uA0size_of_val
%uA0函数是在所定义的%uA0mem
%uA0模块, 并且%uA0mem%uA0
模块是定义在%uA0std
%uA0包装箱中. 有关更多详细信息,请参阅%uA0modules%uA0和%uA0crates.