Rust语言入门-9-枚举初步


枚举概念与定义

枚举类似结构体,能够列出某些有穷序列集的所有成员。

在Rust语言中,枚举的使用方法比再C++中更为灵活

枚举举例一

在C++中,枚举最后一个成员不用加,,并且要在最后的}后加; 同时,在C++中,V4(第一个元素)默认值为0,V6值为1。

enum IPADDKIND{
    v4,
    v6
};

而在Rust语言中,注意最后一个成员需要加,,且enum定义最后无需加;

enum IPADDKIND{
   V4,
   V6,
}

枚举举例二

在Rust语言中,成员可以指定类型

 enum IPADDKIND{
    V4(u8,u8,u8,u8),   
    V6(String),
}

Option枚举及其优于空值

Option<T>类似与C++的模板,T可以是任意的数据类型,并且Option可以设置空值成员NONE.

使用方法如下:

enum Option<T>{
    Some(T),
    None,
}

let y  = Some(10);
let z  = Option::<i32>::None;

注意的是,如果定义空值变量,必须注明类型,即z的类型为Option::<i32>

整体程序与打印效果

程序测试代码

#[derive(Debug)]
enum IPADDKID{
    V4(u8,u8,u8,u8),
    V6(String),
}

enum Option<T>{
    Some(T),
    None,
}

fn main() {
    let Six = IPADDKID :: V4(192,168,3,1);
    let Four = IPADDKID :: V6(String :: from("::1"));


    let x  = 5 ;
    let y  = Some(10);
    let z  = Option::<i32>::None;
    println!("{:?}",y);
} 

测试效果

运行结果


文章作者: 瑾年
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 瑾年 !
 上一篇
Rust语言入门-10-枚举使用、match使用以及if-let-else使用 Rust语言入门-10-枚举使用、match使用以及if-let-else使用
枚举使用在定义变量使用枚举时,格式为let + 变量名 + = + 枚举名+:: + 枚举值
下一篇 
Rust语言入门-8-方法语法 Rust语言入门-8-方法语法
方法语法概念用fn关键字和名称声明,可以有参数和返回值,并且包含一些在从其他地方调用时运行的代码。然而,方法与函数的不同之处在于它们是在结构的上下文中定义的,并且它们的第一个参数始终是self,它表示正在调用该方法的结构的实例。
  目录