解析带端口的IP地址遇E0282错误,疑trust-dns示例README有误?
问题分析与解决
- 错误根源:你尝试解析的
"8.8.8.8:53"是IP地址+端口的组合,对应Rust标准库的SocketAddr类型,而非单纯的IP地址类型(Ipv4Addr/IpAddr)。Rust编译器无法自动推断你要解析的目标类型,因此抛出error[E0282]: type annotations needed错误。 - 正确写法:明确指定解析为
SocketAddr类型即可解决:use std::net::SocketAddr; // 解析带端口的地址 let socket_addr: SocketAddr = "8.8.8.8:53".parse().unwrap(); - 为什么单独解析
"8.8.8.8"没问题:因为你显式指定了Ipv4Addr类型,编译器能明确解析目标,自然不会报错。
内容的提问来源于stack exchange,提问作者Biswanath
相关产品推荐
相关产品推荐

