3. 数据类型探索
任务说明
本案例要求使用 Rust 声明整数、浮点数、布尔、字符等基本类型变量,并通过标准库输出每种类型所占用的字节大小及其存储的值。通过该案例掌握 Rust 基本数据类型的字面量写法、类型标注方式以及 std::mem::size_of 的用法。
代码实现
fn main() {
// 整数类型:显式标注 i32(32位有符号整数)
let integer: i32 = -42;
// 浮点类型:f64(64位双精度浮点数)
let float: f64 = 3.14159;
// 布尔类型
let boolean: bool = true;
// 字符类型:Unicode 标量值,使用单引号
let character: char = 'R';
// 输出各类型的字节大小
println!("i32 大小: {} 字节, 值: {}", std::mem::size_of::<i32>(), integer);
println!("f64 大小: {} 字节, 值: {}", std::mem::size_of::<f64>(), float);
println!("bool 大小: {} 字节, 值: {}", std::mem::size_of::<bool>(), boolean);
println!("char 大小: {} 字节, 值: {}", std::mem::size_of::<char>(), character);
// 额外展示无符号整数与短整型,便于对比
let unsigned: u8 = 255;
let short: i16 = -12345;
println!("u8 大小: {} 字节, 值: {}", std::mem::size_of::<u8>(), unsigned);
println!("i16 大小: {} 字节, 值: {}", std::mem::size_of::<i16>(), short);
}
代码说明
上述代码在 main 函数中依次声明了 i32、f64、bool、char 四种基本类型变量,并额外添加了 u8 与 i16 用于展示不同整数宽度。每个变量均通过 let 变量名: 类型 = 值 的形式显式标注类型。使用 std::mem::size_of::<T>() 在编译期获取类型 T 的字节大小,并通过 println! 宏同时输出大小与变量值。
编译与运行
# 将上述代码保存为 main.rs,然后执行:
rustc main.rs
./main
也可以使用 Cargo 创建项目后,将代码放入 src/main.rs,执行 cargo run。
预期输出
i32 大小: 4 字节, 值: -42
f64 大小: 8 字节, 值: 3.14159
bool 大小: 1 字节, 值: true
char 大小: 4 字节, 值: R
u8 大小: 1 字节, 值: 255
i16 大小: 2 字节, 值: -12345
验证方法
运行程序后,观察终端输出。判定标准:i32 大小为 4 字节、f64 为 8 字节、bool 为 1 字节、char 为 4 字节(Rust 中 char 固定为 4 字节 Unicode 标量值),且各变量输出的值与代码中赋初值完全一致。若输出与上述预期相符,则案例通过。