Перейти к основному содержимому
  1. Rust/

Затенение переменных (Shadowing) в Rust на реальных примерах

·387 слов·2 минуты· loading · loading · · ·Rust-basic
О Rust - Эта статья часть цикла.
Статей прочитано 0/38
0%
📚 Введение и дополнительные материалы
🟢 Начальный уровень (Rust-basic)
08 Затенение переменных (Shadowing) в Rust на реальных примерах (текущая)
Не прочитана
Не прочитана
🔵 Средний уровень (Rust-middle)

Затенение (variable shadowing)
#

Затенение переменных - это концепция Rust, которая позволяет повторно объявить переменную с тем же именем, используя ключевое слово let. При этом оригинальная переменная заменяется (затеняется) новой, что позволяет изменять тип или состояние данных без создания временных переменных (например, temp_str или temp_float).

Пример использования затенения
#

Один из наиболее распространенных примеров, где это может потребоваться - это последовательная трансформация данных и работа с локальными областями видимости (например, обработка данных с температурных датчиков или сенсоров яркости в умном доме).

Затенение переменных в Rust
Шаг 1/2
1fn main() {
2    let temperature = "25.5";
3    let temperature: f64 = temperature.parse().unwrap();
4    let mut temperature = temperature * 9.0 / 5.0 + 32.0; // переводим в Фаренгейт
5
6    temperature = temperature + 1.0;
7    println!("Температура: {}", temperature);
8}

Последовательная трансформация данных

  • Затенение позволяет повторно использовать имя переменной temperature.
  • Мы изменили тип данных со строки &str на число f64.
  • В конце мы сделали её изменяемой с помощью let mut.

Описание работы примера:
#

  1. Шаг 1. Последовательная трансформация данных:

    • Сначала мы объявили переменную temperature со строковым значением "25.5".
    • Затем с помощью ключевого слова let затенили её новой переменной типа f64, распарсив строку.
    • Далее мы перевели значение в Фаренгейты, а затем переопределили её как изменяемую (mut), прибавив единицу. Это позволяет повторно использовать понятное имя переменной без придумывания временных названий.
  2. Шаг 2. Затенение в рамках области видимости (scope):

    • Мы объявили внешнюю переменную brightness со строковым значением "50".
    • Внутри блока {} мы объявили локальную переменную brightness с типом u8 и числовым значением 50.
    • Внутри блока мы затенили её ещё раз, увеличив на 20.
    • После выхода из блока все временные локальные переменные очищаются из стека, и внешняя переменная восстанавливает своё оригинальное значение "50".

Надеюсь, эта статья помогла вам понять концепцию затенения переменных в Rust и избавит вас от придумывания новых имен для переменных наподобие upd_temperature.

История обновлений

  • Добавил примеры с кодом для демонстрации концепции затенения переменных (variable shadowing).
Статья прочитана
Пожалуйста, оцените насколько статья была вам полезна и понятна
Цикл статей
О Rust - Эта статья часть цикла.
Статей прочитано 0/38
0%
📚 Введение и дополнительные материалы
🟢 Начальный уровень (Rust-basic)
08 Затенение переменных (Shadowing) в Rust на реальных примерах (текущая)
Не прочитана
Не прочитана
🔵 Средний уровень (Rust-middle)

Связанные статьи