Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Блоки и области видимости

  • Блок в Rust содержит последовательность выражений, заключённую в фигурные скобки {}.
  • Последнее выражение блока определяет значение и тип всего блока.
// Copyright 2023 Google LLC
// SPDX-License-Identifier: Apache-2.0

fn main() {
    let z = 13;
    let x = {
        let y = 10;
        dbg!(y);
        z - y
    };
    dbg!(x);
    // dbg!(y);
}

Если последнее выражение заканчивается ;, то результатом блока (и его типом) будет ().

Область видимости переменной ограничена объемлющим блоком.

This slide should take about 5 minutes.
  • Можно объяснить, что dbg! — это макрос Rust, который выводит и возвращает значение заданного выражения для быстрой отладки.

  • Можно показать, как меняется значение блока при изменении последней строки в блоке. Например, можно добавить/убрать точку с запятой или использовать return.

  • Продемонстрируйте, что попытка обратиться к y за пределами её области видимости не скомпилируется.

  • Значения фактически «освобождаются» при выходе из области видимости, даже если их данные на стеке всё ещё лежат там.