Rust 枚举及其变体的使用

26 篇文章 0 订阅

fn main(){
println!("===============enum=====================");
    enum_test();
}

#[derive(Debug)]
enum In_enum{
    Boy,
    Gril
}
//枚举及其各种变体的使用
#[derive(Debug)]
enum my_enum<'a>{
    A,
    B{b:String,c:i32},//结构体
    C(i32,i32,i32),//元组
    D(Vec<&'a str>), //元组包含向量
    E([i32;5]),      //数组 定义一个数组时,使用;来区分前面的类型以及后面的数量
    F(In_enum),
}

fn enum_test(){
    let A = my_enum::A;
    let B = my_enum::B{b:"Hello Rust".to_string(),c:32};
    let C = my_enum::C(60,32,64);
    let D = my_enum::D(vec!["a","b","c","d"]);
    let E = my_enum::E([0i32;5]);       //实例化多个相同元素的数组时也使用;来区分前面的元素实例及后面的具体数量
    let F = my_enum::F(In_enum::Boy);
    println!(">>>>>>>>>>>>>>>>>>>>");
    println!("{:#?}\n>>>>\n{:#?}\n>>>>\n{:#?}\n>>>>\n{:#?}\n>>>>\n{:#?}\n>>>>\n{:#?}\n>>>>\n",A,B,C,D,E,F);
    let v:Vec<&str> =  match D{
        my_enum::D(v) =>v,
        _ =>vec![],
    };
    println!("{:#?}",v);
}

输出结果为:

===============enum=====================
>>>>>>>>>>>>>>>>>>>>
A
>>>>
B {
    b: "Hello Rust",
    c: 32,
}
>>>>
C(
    60,
    32,
    64,
)
>>>>
D(
    [
        "a",
        "b",
        "c",
        "d",
    ],
)
>>>>
E(
    [
        0,
        0,
        0,
        0,
        0,
    ],
)
>>>>
F(
    Boy,
)
>>>>

[
    "a",
    "b",
    "c",
    "d",
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值