【发布时间】:2019-07-22 09:17:13
【问题描述】:
我的意思是这样的:
fn minimum<'a, 'b>(x: &'a mut i32, y: &'b mut i32) -> &'min(a, b) mut i32 {
(x < y) ? x : y
}
我们不知道在生命周期中会选择哪个引用,但编译器知道两个引用在哪个范围内仍然有效并且返回的引用可以安全使用。
可以提及的解决方法:
fn minimum<'a, 'b> where 'b: 'a (x: &'a i32, y: 'b i32) -> &'a i32 {
(x < y) ? x : y
}
并不是真正的解决方案,因为在调用函数时我们必须处理两种情况:'a: 'b 和 'b: 'a
【问题讨论】:
-
我喜欢这个问题;这意味着你对生命有完全正确的心态:)