2 个版本
使用旧 Rust 2015
0.1.1 | 2017年6月19日 |
---|---|
0.1.0 | 2017年6月17日 |
#75 in #drop
4KB
此软件包提供了一个宏,用于创建在需要时创建并在不再需要时立即释放的静态值。它需要导入 lazy_static
宏。
示例
#[macro_use] extern crate lazy_static;
#[macro_use] extern crate weak_static;
struct Foo;
impl Foo {
fn new() -> Self {
println!("new");
Foo
}
}
impl Drop for Foo {
fn drop(&mut self) {
println!("drop");
}
}
weak_static! {
static FOO: Foo = Foo::new();
}
fn main() {
{
let _foo1 = FOO();
let _foo2 = FOO();
let _foo3 = FOO();
}
{
let _foo4 = FOO();
let _foo5 = FOO();
let _foo6 = FOO();
}
}
输出
new
drop
new
drop
new
打印对应于 _foo1
和 _foo4
的 FOO()
调用。 drop
打印对应于最后一个 FOO 引用被释放。