根据Rust编程语言:
由于示波器总是窝,另一种说法.这是一个通用的寿命
'a将得到具体的寿命相等的寿命的小x和y.
fn main() {
let x = "abcd";
let result;
{
let y = "qwerty";
result = longest(x, y);
}
println!("The longest string is {} ", result);
}
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() {
x
} else {
y
}
}
Run Code Online (Sandbox Code Playgroud)
在main函数中,"x和y的生命周期中较小的"是嵌套范围.这也应该是值的生命周期result,但结果包含来自该嵌套范围外部的正确值.
为什么这段代码正常工作?