<分区>
如何将我自己的结构之一的实例声明为静态的?此示例无法编译:
static SERVER: Server<'static> = Server::new();
fn main() {
SERVER.start("127.0.0.1", 23);
}
<分区>
如何将我自己的结构之一的实例声明为静态的?此示例无法编译:
static SERVER: Server<'static> = Server::new();
fn main() {
SERVER.start("127.0.0.1", 23);
}
最佳答案
您不能在全局变量中调用任何非const
函数。通常,您将能够执行类似结构文字的操作,尽管隐私规则可能会阻止您这样做,因为有私有(private)字段并且您没有在同一模块中定义它。
所以如果你有这样的事情:
struct Server<'a> {
foo: &'a str,
bar: uint,
}
你可以这样写:
const SERVER: Server<'static> = Server {
foo: "yay!",
bar: 0,
};
... 但这是您在真正的 static
或 const
声明中所能获得的最好结果。然而,有一些解决方法可以实现这种事情,例如 lazy-static ,其中您的 Server::new()
是完全合法的。
关于struct - 如何将我的 Rust 结构之一的实例声明为静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26771078/