【发布时间】:2018-08-04 01:55:45
【问题描述】:
在 Rust 中,很容易从 IpV4Addr 创建一个 IpAddr:
let ipv4 = IpV4Addr::new(127,0,0,1);
let ip = IpAddr::V4(ipv4);
但似乎没有退路了:
if ip.is_ipv4() {
let ipv4: IpV4Addr = .....?
}
原因是我需要在某个时候访问 IPv4 地址的八位字节(通过IPv4::octets)以通过网络传输它们。但是,我想在应用程序的其他部分使用更通用的 IpAddr 表示,因为我想在未来实现 IPv6,因此使网络代码不是 IPv4 特定的。
【问题讨论】:
-
我推荐阅读The Rust Programming Language以熟悉Rust中的基本概念,例如enums。
-
我确实读过它(+ 第 1 版),但我无法将这样的理论信息应用于现实世界的问题;这只是我个人的弱点(我通常需要一个实际的例子来“得到”一些东西)。如果您觉得这样的问题不适合 SO,我将不再发布它们。
-
我不认为这样的问题是不合适的,只是我觉得他们已经被书回答了。
标签: rust