借用を返す

しかし、関数に参照を返させることもできます!これは、借用が関数から呼び出し元へ戻ってくることを意味します:

// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0

fn identity(x: &i32) -> &i32 {
    x
}

fn main() {
    let mut x = 123;

    let out = identity(&x);

    // x = 5; // 🛠️❌ `x` はまだ借用されています!

    dbg!(out);
}
  • Rust の関数は参照を返すことができ、これは借用が関数から呼び出し元へ戻ってくることを意味します。

  • 関数が参照(または別の種類の借用)を返す場合、それはおそらくその引数の 1 つに由来します。これは、その関数の戻り値によって、1 つ以上の引数の借用期間が延長されることを意味します。

  • このケースは、関数に渡される借用が 1 つだけなので、返される借用も同じものに限られ、まだ比較的単純です。