1
如何将我自己的结构之一的实例声明为static?这个样本显然不能编译,但它应该证明我的意图。Rust静态结构声明
static SERVER: Server<'static> = Server::new();
fn main() {
SERVER.start("127.0.0.1",23);
}
如何将我自己的结构之一的实例声明为static?这个样本显然不能编译,但它应该证明我的意图。Rust静态结构声明
static SERVER: Server<'static> = Server::new();
fn main() {
SERVER.start("127.0.0.1",23);
}
您不能在全局内调用任何函数;他们必须严格文字。通常你可以做类似于结构文字的东西,尽管隐私规则可能会阻止你这样做,在那里有私人领域,而你没有在同一个模块中定义它。
所以,如果你有这样的事情:
struct Server<'a> {
foo: &'a str,
bar: uint,
}
你可以这样写:
const SERVER: Server<'static> = Server {
foo: "yay!",
bar: 0,
};
...那是你在一个真正的static
或const
声明得到最好的。但是,有一些解决方法可以实现这种功能,例如lazy-static,其中您的Server::new()
是完全合法。
请注意常见问题条目:[主要之前或之后没有生命](http://doc.rust-lang.org/complement-design-faq.html#there-is-no-life-before-or -after-main-%28no静电-构建函数/ dtors%29)。 – 2014-11-06 07:33:12