// 当然如果数值已经在目标类型的范围内,就直接把它放进去。 println!(" 128 as a i16 is: {}", 128asi16); // 128 转成 u8 还是 128,但转到 i8 相当于给 128 取八位的二进制补码,其值是: println!(" 128 as a i8 is : {}", 128asi8);
// 重复之前的例子 // 1000 as u8 -> 232 println!("1000 as a u8 is : {}", 1000asu8); // 232 的二进制补码是 -24 println!(" 232 as a i8 is : {}", 232asi8); }
// `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)); }
上面的代码使用了一些还没有接触的概念。下面简短解释:
fun(&foo) 用传引用(pass by reference)的方式把变量传给函数,而非传值(pass by value,写法为 fun(foo))。更多细节请看借用相关内容.