this.isMin.uk


rust와 lifetime

fn longest<'a> (x: &'a str, y: &'a str) -> &'a str {
  if x.len() > y.len() {
    x
  } else {
    y
  }
}

fn main() {
  let result;
  let x = "123";
  {
    let y = "1";
    result = longest(x, y);

    println!("result = {}", result);
  }

  println!("result = {}", result); // <<<< compile error.
  // 'a를 가진 result는 y와 동일한 lifetime을 가짐.
  // 따라서 y의 소유권이 끝났기 때문에, result도 여기서 사용이 불가능함
}
Rust, Til