Видалення символів за візерунком

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 програмістам легко налаштувати процес видалення без додаткових витрат на продуктивність.

Дивіться Також