Області видимості та затінення
Область видимості змінної обмежується блоком, що її охоплює.
Ви можете затіняти змінні, як із зовнішніх областей, так і змінні з тієї ж області:
fn main() { let a = 10; println!("до: {a}"); { let a = "привіт"; println!("внутрішня область видимості: {a}"); let a = true; println!("затінений у внутрішній області видимості: {a}"); } println!("після: {a}"); }
- Покажіть, що область видимості змінної обмежена, додавши
b
у внутрішньому блоці в останньому прикладі, а потім спробувавши отримати доступ до неї за межами цього блоку. - Затінення відрізняється від мутації тим, що після затінення обидві ділянки пам'яті змінних існують одночасно. Обидві змінні доступні під одним і тим же ім'ям, залежно від того, де ви їх використовуєте у коді.
- Змінна затінення може мати інший тип.
- Затінення спочатку виглядає незрозумілим, але є зручним для збереження значень після
.unwrap()
.