厦门网站建设westcy,怎么建立网站?,网站背景图片切换,知乎推广渠道目录 枚举的使用Option 枚举数组的使用输出结果 枚举#xff08;Enum#xff09;#xff1a;表示一个类型可以有多个不同的取值。枚举类型可以包含不同的变体#xff08;variants#xff09;#xff0c;每个变体可以有不同的数据类型。
枚举的使用
enum Direction {Up,… 目录 枚举的使用Option 枚举数组的使用输出结果 枚举Enum表示一个类型可以有多个不同的取值。枚举类型可以包含不同的变体variants每个变体可以有不同的数据类型。
枚举的使用
enum Direction {Up,Down,Left,Right,
}fn move_player(direction: Direction) {match direction {Direction::Up println!(Moving up),Direction::Down println!(Moving down),Direction::Left println!(Moving left),Direction::Right println!(Moving right),}
}fn main() {let player_direction Direction::Up;move_player(player_direction);
}Option 枚举
Option 是 Rust 标准库中的一个枚举用于表示一个值可能存在也可能不存在的情况。它有两个变体Some(T) 表示值存在且包含具体的值 TNone 表示值不存在。如果使用 None 而不是 Some需要告诉 Rust OptionT 是什么类型的因为编译器只通过 None 值无法推断出 Some 成员保存的值的类型。在对 OptionT 进行 T 的运算之前必须将其转换为 T。Rust 的类型系统通过强制使用 OptionT 来明确标识可能为空的值帮助开发者更容易地避免空指针异常和空值错误因此只要一个值不是 OptionT 类型你就可以安全的认定它的值不为空。
fn divide(x: f64, y: f64) - Optionf64 {if y 0.0 {None} else {Some(x / y)}
}fn main() {let result divide(10.0, 2.0);match result {Some(value) println!(Result: {}, value),None println!(Cannot divide by zero!),}
}数组的使用
fn main() {// 编译器自动推导出one的类型let one [1, 2, 3];// 显式类型标注let two: [u8; 3] [1, 2, 3];let blank1 [0; 3];let blank2: [u8; 3] [0; 3];// arrays是一个二维数组其中每一个元素都是一个数组元素类型是[u8; 3]let arrays: [[u8; 3]; 4] [one, two, blank1, blank2];// 借用arrays的元素用作循环中for a in arrays {print!({:?}: , a);// 将a变成一个迭代器用于循环// 你也可以直接用for n in a {}来进行循环for n in a.iter() {print!(\t{} 10 {}, n, n10);}let mut sum 0;// 0..a.len,是一个 Rust 的语法糖其实就等于一个数组元素是从0,1,2一直增加到到a.len-1for i in 0..a.len() {sum a[i];}println!(\t({:?} {}), a, sum);}
}输出结果