تمرين - الوحدات النمطية

مكتمل

الآن هي فرصتك لاستخدام ما تعلمته عن استخدام الوحدات في الوظائف والرؤية.

تحتوي التعليمات البرمجية التالية على بعض أخطاء لبرنامج التحويل البرمجي. تعيينك في هذا التمرين هو جعل التعليمات البرمجية برمجيا بنجاح دون تعديل الدالة main .

mod text_processing {

    mod letters {
        fn count_letters(text: &str) -> usize {
            text.chars().filter(|ref c| c.is_alphabetic()).count()
        }
    }

    mod numbers {
        fn count_numbers(text: &str) -> usize {
           text.chars().filter(|ref c| c.is_numeric()).count()
        }
    }
}

fn count_letters_and_numbers(text: &str) -> (usize, usize) {
    let number_of_letters = ???;
    let number_of_numbers = ???;
    (number_of_letters, number_of_numbers)
}

fn main() {
    assert_eq!(count_letters_and_numbers("221B Baker Street"), (12, 3));
    assert_eq!(count_letters_and_numbers("711 Maple Street"), (11, 3));
    assert_eq!(count_letters_and_numbers("4 Privet Drive"), (11, 1));
}

يمكنك أيضًا عرض هذا التمرين في ارتباط Rust Playground.

للعثور على حل لهذا التمرين، تحقق من ارتباط Rust Playground هذا.