有没有办法从 Rust 编译器中获取省略的生命周期参数?
Is there a way to obtain elided lifetime parameters from the Rust compiler?
给定一个正确编译的 Rust 程序,我能否让编译器告诉我推断出的省略生命周期是多少?
编译器(目前1)允许省略生命周期的情况实际上非常简单,编译器无法告诉您它推断的内容:
Given a function, all elided lifetimes have the same value.
编译器在可以选择的情况下不接受省略的生命周期。例外是在方法中,但是将所有生命周期绑定到 self
几乎总是预期的,因此做出这个假设是有意义的。
[1] 如果 Rust 的未来版本对省略的生命周期执行更复杂的推理,那么这个问题可能会有一个不那么简单的答案。例如,编译器可以分析整个代码库,为所有函数推断出一组连贯的生命周期(或者 impl
s 或 struct
s,如果那里也允许省略的话)。
给定一个正确编译的 Rust 程序,我能否让编译器告诉我推断出的省略生命周期是多少?
编译器(目前1)允许省略生命周期的情况实际上非常简单,编译器无法告诉您它推断的内容:
Given a function, all elided lifetimes have the same value.
编译器在可以选择的情况下不接受省略的生命周期。例外是在方法中,但是将所有生命周期绑定到 self
几乎总是预期的,因此做出这个假设是有意义的。
[1] 如果 Rust 的未来版本对省略的生命周期执行更复杂的推理,那么这个问题可能会有一个不那么简单的答案。例如,编译器可以分析整个代码库,为所有函数推断出一组连贯的生命周期(或者 impl
s 或 struct
s,如果那里也允许省略的话)。