#include<stdio.h>enumatomic_number{HYDROGEN=1,HELIUM=2,// ...IRON=26,};intmain(void){enumatomic_numberelement=26;if(element==IRON){printf("隔壁Rust做不到,oh yeah!\n");}return0;} 但是在Rust中,以下代码: enumMyEnum{A=1,B,C,}fnmain(){// 将枚举转换成整数,顺利通过letx=MyEnum::C...
enumContainer<T> { Some(T), None, } fnmain() { letnumber: Container<i32> = Container::Some(42); lettext: Container<&str> = Container::Some("Hello"); matchnumber { Container::Some(value) =>println!("Number: {}", value), Container::None=>println!("No number"), } matchtext {...
2、枚举(Enum) 枚举是一种自定义的数据类型,它可以表示多个可能的值。枚举使用enum关键字定义,并可以包含不同的变体(variant)。 以下是一个枚举的示例: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 enum Fruit { Apple, Banana, Orange, } fn main() { let fruit: Fruit = Fruit::Apple; match ...
enum Data { Empty, Number(i32), Array(Vec<i32>), } Empty变体不存储任何其它数据,Number变体中有一个 i32,Array变体保存了一个元素类型为 i32 的 Vec。首先来看一下Array变体的内存布局: 首先是一个整数标记,这里就是 2 。然后是三个 usize 用来存储 Vec 。编译器还将添加一些 padding 以满足内存对齐。
2、枚举(Enum) 四、其他数据类型 1、切片(Slice) 2、Option类型 3、Result类型 总结 导言 Rust是一种现代的、安全的系统编程语言,注重内存安全和并发性。在Rust中,数据类型是程序中最基本的构建块之一。本篇博客将详细解释Rust的各种数据类型,并提供相关代码示例。
rust学习——枚举(enums)基本概念 定义枚举 rust中的枚举跟js中虽然不一样但是类似,使用起来也累死。比如我们想要定义一个枚举,用于获取ip地址的版本,是v4的还是v6的,我们就可以这样去定义一个枚举类型的示例。 #[derive(Debug)] enum IpAddrKind { V4,...
fn main() {enum Option<T> {None,Some(T),}let some_number: i8 = 5;let absent_number: Option<i8> = Some(5);let plus = some_number + absent_number;} 运行结果如下所示: 在这里有2个严重的问题: 第一个问题是let absent_number: Option<i8> = Some(5); 在这里赋值的时候会报错,这2个...
enumOption<T>{// <T> 语法是一个泛型类型参数None,Some(T),}letsome_number=Some(5);letsome_char=Some('e');// Option<char>letabsent_number:Option<i32>=None;// 对于 absent_number,Rust 需要我们指定 Option 整体的类型//编译器只通过 None 值无法推断出 Some 成员保存的值的类型。letabsent_...
enum类型绑定数据类型 枚举的独特之处: enumEx1{ Name(String), Age(u32), } 我们创建了一个枚举,这个枚举的字段绑定了两个值,分别是String的Name和u32的Age, 我们直接将数据附加到枚举的每个成员上,这样就不需要一个额外的结构体了。 我们像上面使用结构体那样,使用这个枚举,创建一个实例变量: ...
然后enum 也可以像 C 语言的枚举类型一样使用。// 这些枚举成员都有隐式的值// Zero 等于 0,one 等于 1,Two 等于 2 enum Number { Zero, One, Two, } fn main() { // 既然是隐式的,就说明不能直接用 // 需要显式地转化一下 println!("Zero is {}", Number::Zero as i32); println!("...