MST

星途 面试题库

面试题:Rust 生命周期标注:函数参数生命周期匹配

假设有如下 Rust 代码片段,在 `print_string` 函数中,`s1` 和 `s2` 是两个字符串切片,要求函数返回一个字符串切片,这个切片要引用 `s1` 和 `s2` 中较长的那个字符串。请补充完整函数的生命周期标注。 ```rust fn print_string(s1: &str, s2: &str) -> &str { if s1.len() > s2.len() { s1 } else { s2 } } ```
13.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn print_string<'a>(s1: &'a str, s2: &'a str) -> &'a str {
    if s1.len() > s2.len() {
        s1
    } else {
        s2
    }
}

这里使用了泛型生命周期参数 'a,为 s1s2 和返回值都标注了相同的生命周期 'a,表示函数返回的切片的生命周期与传入的两个切片中较短的那个生命周期相同。这样能确保返回值在其使用的整个生命周期内,所引用的数据都是有效的。