gpt4 book ai didi

rust - 匹配枚举字符串

转载 作者:行者123 更新时间:2023-12-05 01:26:04 24 4
gpt4 key购买 nike

我正在学习 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 匹配良好,但我在第二个上遇到以下构建错误

error[E0507]: cannot move out of self.0 which is behind a shared reference

move occurs because _S has type String, which does not implement the Copy trait

如何匹配附加了字符串的枚举?

最佳答案

它的提示是因为你试图通过取消引用来复制 self,但是 IpAddr 包含一个不可复制的 String

删除取消引用,它应该按预期工作

match self {
IpAddr::v4(A,B,C,D) => println!("{}.{}.{}.{}",A,B,C,D),
IpAddr::v6(S) => println!("{}",S)
}

关于rust - 匹配枚举字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70467442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com