Rust类型转换 - 字面量

字面量

数字文本可以通过添加类型作为后缀注释类型, 目前除了 usize 使用 usize 后缀,以及 isize 使用 isize 作为后缀。

后缀的数字文字类型将取决于如何使用它们。如果没有约束存在,编译器将使用 i32 为整数,  f64 作为浮点数。

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) 是用来引用参数传递给函数, 而不是通过 (fun(foo). 详情请参阅 借用.
  • std::mem::size_of_val 是一个函数,调用它的完整路径。代码可以分成称为模块的逻辑单元。在这种情况下,该 size_of_val 函数是在所定义的 mem 模块, 并且 mem 模块是定义在 std 包装箱中. 有关更多详细信息,请参阅 modules 和 crates.
        原文作者:Rust教程
        原文地址: https://www.yiibai.com/rust/cast_literals.html
        本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
    点赞