我知道你可以打电话给:
rustc -Z unstable-options --pretty=expanded
Run Code Online (Sandbox Code Playgroud)
看到宏扩展,是否有类似的东西显示文件/包中的变量的生命周期?
我看到有一个pretty=typed,但它没有显示生命周期,因为它显示了一切的类型.
我可以看到一个选项来显示生命周期对新的Rust程序员(比如我)非常有帮助.
一生都有一个奇特的名字,但实际上它们并不是特别的.事实上,您的源代码已经显示了生命周期!
fn example() {
let v1 = Vec::new();
{
let v2 = Vec::new();
} // v2 goes out of scope here
} // v1 goes out of scope here
Run Code Online (Sandbox Code Playgroud)
项的生命周期基本上只是源代码中变量有效的大括号.当你有两个项目时会有一些额外的复杂性,但这是一个简单的扩展:
fn example() {
let v1 = Vec::new(); // | Lifetime of v1
let v2 = Vec::new(); // | | Lifetime of v2
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,v1生命有点长v2,只有当你试图引用另一个时才真正重要:
fn example() {
let mut v1 = vec![]; // | Lifetime of v1
let mut v2 = vec![()]; // | | Lifetime of v2
v1.push(&v2); // | |
}
Run Code Online (Sandbox Code Playgroud)
这里,v2将被丢弃前 v1(有一个LIFO订货到滴),因此参考v2会时之间无效v2被丢弃,v1被丢弃.
如果您对通用生命周期参数的相互作用更加好奇,我建议您查看这个答案.
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |