Добавить объявление

Символ _ для игнорирования значений в Rust

Продолжаю изучать Rust и нашел еще одно сходство со Swift: использование символа _ для игнорирования значений.

Для чего используется:


  • Скрывает предупреждения компилятора о неиспользуемых переменных.

  • Вызов функций ради побочных эффектов, когда возвращаемое значение не используется.

  • Игнорирование конкретных значений в кортежах.

  • Сопоставление с образцом в match/switch при игнорировании части значений.

Пример в Rust:


// Игнорируем ненужные значения в кортеже
let (name, _, age) = ("Tom", "неважно", 25);
println!("Имя: {}, Возраст: {}", name, age);

// Игнорируем результат функции
let _ = some_function(); // Значение не нужно

// Сопоставление с образцом
let status = (404, "Not Found");
match status {
(200, _) => println!("Успешный запрос"),
(400..=499, message) => println!("Ошибка клиента: {}", message),
_ => println!("Неизвестный статус"),
}

Пример в Swift:


// Игнорируем ненужные значения в кортеже
let (name, _, age) = ("Tom", "неважно", 25)
print("Имя: \(name), Возраст: \(age)")

// Игнорируем результат функции
let _ = someFunction() // Значение не нужно

// Сопоставление с образцом
let status = (404, "Not Found")
switch status {
case (200, _): print("Успешный запрос")
case (400...499, let message): print("Ошибка клиента: \(message)")
default: print("Неизвестный статус")
}

Данная возможность очень удобна и сохраняет чистоту кода!
07.11.2025 11 182