Enums 如何在Rust中访问方法内部的元组枚举参数

Enums 如何在Rust中访问方法内部的元组枚举参数,enums,rust,Enums,Rust,在下面的代码中,如何访问字符串“hello”(我在定义m时传递了该字符串) enum消息{ 退出 移动{x:i32,y:i32}, 写(字符串), 变色(i32,i32,i32), } impl消息{ fn调用(&self){ //如何从这里访问“hello”字符串? } } 让m=Message::Write(字符串::from(“hello”)); m、 call(); 由于枚举消息可以处于任意数量的状态,因此必须处于正确的状态才能提取hello fn调用(&self){ 匹配自我{ Mes

在下面的代码中,如何访问字符串
“hello”
(我在定义
m
时传递了该字符串)

enum消息{
退出
移动{x:i32,y:i32},
写(字符串),
变色(i32,i32,i32),
}
impl消息{
fn调用(&self){
//如何从这里访问“hello”字符串?
}
}
让m=Message::Write(字符串::from(“hello”));
m、 call();

由于
枚举消息
可以处于任意数量的状态,因此必须处于正确的状态才能提取hello

fn调用(&self){
匹配自我{
Message::Write(string)=>println!(“{}”,string),
_ => {},
}
}


编辑:user4815162342解决方案也是正确的,您可以互换地使用
匹配
(如果让
进行匹配)。

由于
枚举消息
可以处于任意数量的状态,因此您必须处于正确的状态才能提取hello

fn调用(&self){
匹配自我{
Message::Write(string)=>println!(“{}”,string),
_ => {},
}
}


编辑:user4815162342解决方案也是正确的,您可以互换地使用
匹配
(如果让
)。

您需要使用模式匹配来提取字符串:

if let Message::Write(s)=self{
断言(s,“你好”);
}

您需要使用模式匹配来提取字符串:

if let Message::Write(s)=self{
断言(s,“你好”);
}

如果让消息::写入(x)=自{…}模式匹配
if-let-Message::Write(x)=自{…}
模式匹配
if-let-Message::Write(x)=自{…}