Эксклюзивные ссылки
Эксклюзивные ссылки, также известные как изменяемые ссылки, позволяют менять значение, на которое они указывают. Их тип — &mut T.
// Copyright 2023 Google LLC
// SPDX-License-Identifier: Apache-2.0
fn main() {
let mut point = (1, 2);
let x_coord = &mut point.0;
*x_coord = 20;
println!("point: {point:?}");
}
Ключевые моменты:
-
«Эксклюзивный» означает, что значение можно получить только через эту ссылку. Никакие другие ссылки (ни неизменяемые, ни эксклюзивные) не могут существовать одновременно, и значение нельзя трогать, пока существует эксклюзивная ссылка. Попробуйте создать
&point.0или изменитьpoint.0, пока живаx_coord. -
Обратите внимание на разницу между
let mut x_coord: &i32иlet x_coord: &mut i32. Первая — неизменяемая ссылка, которую можно привязать к разным значениям, а вторая — эксклюзивная ссылка на изменяемое значение.