gpt4 book ai didi

rust - 我怎样才能让编译器在我的包/文件中发出变量的生命周期?

转载 作者:行者123 更新时间:2023-11-29 07:53:18 24 4
gpt4 key购买 nike

我知道你可以这样调用:

rustc -Z unstable-options --pretty=expanded

要查看宏扩展,是否有类似的东西来显示文件/包中变量的生命周期?

我看到有一个 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

项目的生命周期基本上只是源代码中变量有效的大括号。当您有两个项目时会有一点额外的复杂性,但这是一个简单的扩展:

fn example() {
let v1 = Vec::new(); // | Lifetime of v1
let v2 = Vec::new(); // | | Lifetime of v2
}

在这个例子中,v1 的生命周期比 v2 长一点,这只有在您试图在另一个中引用一个时才真正重要:

fn example() {
let mut v1 = vec![]; // | Lifetime of v1
let mut v2 = vec![()]; // | | Lifetime of v2
v1.push(&v2); // | |
}

在这里,v2 将在 v1 之前被丢弃(有一个后进先出的丢弃顺序),因此对 的引用v2v2 被删除和 v1 被删除之间无效。

如果您对通用生命周期参数 的交互方式更好奇,我建议您查看 this answer .

关于rust - 我怎样才能让编译器在我的包/文件中发出变量的生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30446760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com