Продолжаю изучать
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("Неизвестный статус")
}
Данная возможность очень удобна и сохраняет чистоту кода!