Posts

Showing posts from August, 2020

Rust #1 — «Угадай число», причесываем

 Напомню, к чему мы пришли в прошлый раз. use rand :: {thread_rng, Rng}; use std :: io; fn main() { let number = thread_rng().gen_range( 1000 , 10000 ); let mut counter = 0 ; loop { counter += 1 ; println ! ( "Guess # {}" , counter); let mut guess = String :: new(); io :: stdin().read_line( & mut guess).unwrap(); let guess : u32 = guess.trim().parse().unwrap(); if guess > number { println ! ( "Too much!" ); } else if guess < number { println ! ( "Too little!" ); } else { println ! ( "Got it!" ); break ; } } }   Это работает — и как лобовой перевод кода более чем 30-летней давности даже довольно неплохо. Но выглядит это некрасиво и слишком загромождено низкоуровневыми деталями реализации. Обозначим себе фронт работ по рефакторингу: Избавиться от числовых констант Обработать возможные ошибки ввода и конвертации строки в число В...