鉴于正确编译的Rust程序,我是否可以让编译器告诉我推断的生命周期是什么?
答案 0 :(得分:3)
编译器(当前 1 )可以允许省略的生命周期的情况实际上非常简单,以至于编译器无法告诉您它推断的内容:
给定一个函数,所有省略的生命周期都具有相同的值。
编译器在可以选择的情况下不接受省略的生命周期。方法中的例外是,但将所有生命周期与self
联系起来几乎总是如此,因此有必要做出这样的假设。
[1]如果Rust的未来版本对省略的生命周期进行了更为复杂的推断,那么这个问题可能会有一个不那么简单的答案。例如,编译器可以分析整个代码库,以推断出所有函数(或impl
或struct
s)的一致生命周期,如果在那里也允许省略的话。