MST
星途 面试题库

面试题:Rust函数返回值所有权转移与引用:基础应用

请编写一个Rust函数,该函数接收一个字符串切片作为参数,对切片内容进行处理后,返回一个新的字符串。解释函数中涉及的所有权转移与引用机制。
20.9万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn process_string(slice: &str) -> String {
    // 将字符串切片转换为String类型,这里没有所有权转移,只是复制了内容
    let new_string = slice.to_string();
    // 这里可以对new_string进行进一步处理,比如修改字符串内容
    new_string
}

所有权转移与引用机制解释

  1. 参数:函数接收一个字符串切片&str作为参数,这是一个引用。引用意味着函数不会获取参数的所有权,而是借用其数据。这样可以避免在函数调用时发生不必要的所有权转移,提高效率。这里slice只是一个指向原始字符串数据的指针,它并没有获取所有权。
  2. 返回值:函数返回一个新的String类型。在process_string函数内部,通过to_string方法将字符串切片转换为String类型,新创建的String拥有其内部数据的所有权。当函数返回时,这个新的String的所有权被转移给调用者。