[英]How to match against nested String in Rust
如何匹配 Rust 中的嵌套String
? 假设我有一个枚举
pub enum TypeExpr {
Ident((String, Span)),
// other variants...
}
和类型&Box<TypeExpr>
的值lhs
。 如何检查它是否是值为“float”的Ident
?
我试过
if let TypeExpr::Ident(("float", lhs_span)) = **lhs {}
但这不起作用,因为TypeExpr
包含一个String
,而不是一个&str
。 我尝试了我能想到的所有模式变体,但似乎没有任何效果。
如果你真的想用if let
来做这件事,你可能必须这样做
if let TypeExpr::Ident((lhs_name, lhs_span)) = lhs {
if lhs_name == "float" {
// Do the things
}
}
当然,也可以用match
来完成:
match lhs {
TypeExpr::Ident((lhs_name, lhs_span)) if lhs_name == "float" => {
// Do the things
}
_ => {}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.