Заимствование в функциях
При анализе заимствований компилятору нужно понимать, как заимствования передаются в функции и из них. В простейшем случае заимствования существуют в течение вызова функции:
// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0
fn borrows(x: &i32) {
dbg!(x);
}
fn main() {
let mut val = 123;
// Заимствуем `val` на время вызова функции.
borrows(&val);
// Заимствование закончилось, и можно изменять значение.
val += 5;
}
This slide should take about 3 minutes.
- В этом примере мы заимствуем
valдля вызоваborrows. Это ограничивает нашу возможность изменятьval, но как только вызов функции возвращается, заимствование заканчивается и мы снова свободны изменять значение.