Rust:
Видалення символів за візерунком
Як це зробити:
fn main() {
let message = "Вітаємо123 у Rust!";
let pattern = |c: char| c.is_numeric();
let cleansed_message = delete_chars_matching_pattern(&message, pattern);
println!("Clean message: {}", cleansed_message);
// Вивід: Clean message: Вітаємо у Rust!
}
fn delete_chars_matching_pattern<F>(s: &str, pattern: F) -> String
where
F: Fn(char) -> bool,
{
s.chars().filter(|&c| !pattern(c)).collect()
}
Підводне Каміння
Раніше, в мовах, подібних до C, програмісти часто застосовували ручне управління пам’яттю для видалення символів. В Rust, завдяки власній системі власності та безпечному управлінню пам’яттю, це процес став значно безпечнішим та ефективнішим. Як альтернатива функціональному підходу, є методи стандартної бібліотеки, такі як replace
або retain
, хоча вони можуть бути менш гнучкими для складних візерунків. Використання замикань дозволяє Rust програмістам легко налаштувати процес видалення без додаткових витрат на продуктивність.
Дивіться Також
- std::str::Chars документація по ітератору символів рядків.
- std::string::String документація по типу String у Rust.
- Концепція замикань в Rust: Rust Book - Closures.