rust里面的数据结构,很难想,若是学不会,那就是乱七八糟糊里糊涂的感觉,若是学得会,那就是精彩。
下面给大家分享一下,如何获取enum枚举对象中的数据类型里面的值。
一、自定义enum
#[derive(Debug)]
enum E{
Name(String),
Age(i32),
}
二、自定义获取enum中的值的函数
fn getenumvalue(v:E)->String{
match v{
E::Name(v1)=>v1,
E::Age(v1)=>v1.to_string(),
_=> String::from("...")
}
}
此处的函数相当关键,用于枚举出数据结构对应的值。
三、应用举例
fn main() {
let e1=E::Name(String::from("云南青山"));
println!("{}", getenumvalue(e1));
//输出 云南青山
let e2=E::Age(41);
println!("{}", getenumvalue(e2));
//输出 41
let e3=E::Name(String::from("大队长"));
println!("{:?}", e3);
//输出 Name("大队长")
}
千万别掉以轻心啊,注意看let e3=E::Name(String::from("大队长")); e3变量,是一个E枚举类型中的Name,如果直接打印输出,将得到 Name("大队长") 这样的内容,如果你想获取"大队长"这个内容,相当困难,必须使用第二步的自定义函数才能获取(可参照e1和e2的获取方法),否则将不可能获得值导致无法使用。