tgoop.com/random_rust_dev/208
Create:
Last Update:
Last Update:
Rust Tip дня: матчинг слайсов.
В Rust можно элегантно извлекать элементы из слайсов с помощью паттерн-матчинга:
match input {
[0xFF, rest @ ..] => println!("Starts with 0xFF, then {:?}", rest),
[first, second, .., last] => println!("Start: {first:#X}, {second:#X}, end: {last:#X}"),
[.., last] => println!("Ends with {last:#X}"),
[] => println!("Empty slice"),
}
Извлечение с одним вариантом.
if let [a, b, c] = input {
println!("Exactly three elements: {a}, {b}, {c}");
}
Извлечение с ранним возвратом при ошибке матчинга.
let [first, second, rest @ ..] = input else {
panic!("Expected at least two elements");
};
println!("Parsed: {first}, {second}, rest = {:?}", rest);
Сила pattern matching раскрывается в полной мере, когда вы:
* избегаете ручного индексирования,
* делаете распаковку данных декларативной,
* явно документируете формат входа через структуру паттерна.
Приятного вам матчинга.
BY Random Rust Dev
Share with your friend now:
tgoop.com/random_rust_dev/208