【发布时间】:2015-05-22 05:35:19
【问题描述】:
在 Rust 中创建结构时,如果没有设置所有字段,似乎很难创建一个。比如下面的代码
struct Connection {
url: String,
stream: TcpStream
}
如果不提供stream,您也无法设置url。
// Compilation error asking for 'stream'
let m = Connection { url: "www.google.com".to_string() };
您如何才能创建这些可能是Option<None> 的引用,直到以后?
我发现最好的方法是使用Default 特征,但我宁愿在初始化结构之前不必创建TcpStream。我可以用Box 之类的东西来做到这一点吗?
【问题讨论】:
-
如果不设置所有字段似乎很难创建一个 => 实际上,在安全的 Rust 中这是不可能的:编译器让你诚实。
-
这是一件好事。不再意外使用 NULL 的东西!更好的是,不会再意外使用非 NULL 但也未初始化的东西!
标签: rust