Rust语言中的标量类型主要包括四类:整数类型、浮点数类型、布尔类型和字符类型。每种类型都有其特定的特点和用途。下面是每种标量类型的详细解释和示例
Rust语言中的标量类型主要包括四类:整数类型、浮点数类型、布尔类型和字符类型。每种类型都有其特定的特点和用途。下面是每种标量类型的详细解释和示例代码:
整数类型表示没有小数部分的数字。Rust 支持多种整数类型,每种类型的存储大小不同。整数类型分为有符号和无符号两种。有符号整数(如i32)可以表示正数、负数和零,而无符号整数(如u32)只能表示非负数。
i8, i16, i32, i64, i128, isizeu8, u16, u32, u64, u128, usizeisize 和 usize 是根据平台的不同(32位或64位)来确定其位宽的。fn main() {
let x: i32 = -42; // 有符号32位整数
let y: u32 = 42; // 无符号32位整数
println!("x = {}, y = {}", x, y);
}
浮点数类型表示具有小数部分的数字。Rust 支持两种浮点数类型:f32 和 f64。它们分别对应 32 位和 64 位的 IEEE-754 标准。
f32: 32位单精度浮点数f64: 64位双精度浮点数(默认)fn main() {
let x: f32 = 3.14; // 32位浮点数
let y: f64 = 2.718281828459045; // 64位浮点数
println!("x = {}, y = {}", x, y);
}
布尔类型表示真或假的值。布尔类型在Rust中用bool表示,值为true或false。
true 和 falsefn main() {
let is_rust_fun: bool = true;
let is_rust_hard: bool = false;
println!("Is Rust fun? {}", is_rust_fun);
println!("Is Rust hard? {}", is_rust_hard);
}
字符类型表示单个 Unicode 字符,在 Rust 中用 char 表示,占用 4 个字节,可以表示所有的 Unicode 值。
fn main() {
let c1: char = 'A';
let c2: char = '中';
let c3: char = '🚀';
println!("c1 = {}, c2 = {}, c3 = {}", c1, c2, c3);
}
在 Rust 中,当不显式指定类型时,编译器会根据上下文和默认规则来推断标量类型。以下是 Rust 对各种标量类型的默认选择:
对于整数类型,Rust 默认选择 i32(32 位有符号整数)。这是因为 i32 在大多数情况下提供了足够的范围和性能。
fn main() {
let x = 42; // x 被推断为 i32
println!("x = {}", x);
}
在上面的代码中,x 默认被推断为 i32 类型。
对于浮点数类型,Rust 默认选择 f64(64 位双精度浮点数)。这是因为 f64 提供了更高的精度和更广泛的范围,适用于大多数场景。
fn main() {
let y = 3.14; // y 被推断为 f64
println!("y = {}", y);
}
在上面的代码中,y 默认被推断为 f64 类型。
布尔类型没有默认的推断类型,因为 bool 类型只能是 true 或 false,不需要推断。
fn main() {
let is_rust_fun = true; // is_rust_fun 被推断为 bool
println!("Is Rust fun? {}", is_rust_fun);
}
在上面的代码中,is_rust_fun 被推断为 bool 类型。
字符类型 char 也没有默认的推断类型,因为 char 类型的字面量(例如 'A')只能表示 char 类型。
fn main() {
let c = 'A'; // c 被推断为 char
println!("c = {}", c);
}
在上面的代码中,c 被推断为 char 类型。
当不显式指定类型时,Rust 会根据上下文和默认规则推断类型:
i32f64bool 和 char,无需额外推断。如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!