面试题答案
一键面试Rust中引用生命周期的概念
在Rust中,生命周期是指一个引用保持有效的作用域。由于Rust需要确保引用在其生命周期内始终指向有效的数据,所以明确引用的生命周期对于避免悬空引用(dangling references)等内存安全问题至关重要。每个引用都有一个与之关联的生命周期,并且编译器会进行生命周期检查,以确保所有引用在其生命周期结束前一直有效。
实现返回较长字符串切片函数并标注生命周期
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() {
x
} else {
y
}
}
在上述代码中:
<'a>
声明了一个生命周期参数'a
。x: &'a str
和y: &'a str
表示x
和y
这两个字符串切片的生命周期都是'a
。-> &'a str
表示返回的字符串切片的生命周期也是'a
。这样标注生命周期,意味着函数返回的切片必须在x
和y
中生命周期较短的那个结束之前保持有效。