【发布时间】:2021-12-23 21:15:05
【问题描述】:
我正在学习 Rust,我正在尝试编写一个简单的 IP 处理函数
enum IpAddr{
v4(u8,u8,u8,u8),
v6(String),
}
impl IpAddr{
fn write(&self){
match *self {
IpAddr::v4(A,B,C,D) => println!("{}.{}.{}.{}",A,B,C,D),
IpAddr::v6(S) => println!("{}",S)
}
}
}
v4 匹配良好,但我在第二个版本中出现以下构建错误
错误[E0507]:无法移出共享引用后面的
self.0
发生移动是因为
_S的类型为String,它没有实现Copy特征
如何匹配带有字符串的枚举?
【问题讨论】:
-
仅供参考,您没有关注Rust naming conventions(默认情况下应该会生成一堆警告)。