Rust语言中的标量类型主要包括四类:整数类型、浮点数类型、布尔类型和字符类型。每种类型都有其特定的特点和用途。下面是每种标量类型的详细解释和示例
Rust语言中的标量类型主要包括四类:整数类型、浮点数类型、布尔类型和字符类型。每种类型都有其特定的特点和用途。下面是每种标量类型的详细解释和示例代码:
整数类型表示没有小数部分的数字。Rust 支持多种整数类型,每种类型的存储大小不同。整数类型分为有符号和无符号两种。有符号整数(如i32
)可以表示正数、负数和零,而无符号整数(如u32
)只能表示非负数。
i8
, i16
, i32
, i64
, i128
, isize
u8
, u16
, u32
, u64
, u128
, usize
isize
和 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
和 false
fn 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 会根据上下文和默认规则推断类型:
i32
f64
bool
和 char
,无需额外推断。如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!