Alıştırma: Asansör Olayları
Bir asansör kontrol sistemindeki bir olayı temsil etmek için bir veri yapısı oluşturacağız. Çeşitli olayları yapılandırmak için türleri ve fonksiyonları tanımlamak size kalmış. Türlerin {:?}
ile biçimlendirilmesine izin vermek için #[derive(Debug)]
kullanın.
Bu alıştırma yalnızca, main
'in hatasız çalışması için veri yapıları oluşturmayı ve doldurmayı gerektirir. Kursun bir sonraki kısmı bu yapılardan veri almayı kapsayacaktır.
#[derive(Debug)] /// Asansör sisteminde kontrolörün tepki vermesi gereken bir olay. enum Event { // TODO: gerekli değişkeleri (variant) ekle } /// Bir seyahat yönü. #[derive(Debug)] enum Direction { Up, Down, } /// Araba verilen kata ulaşmış durumda. fn car_arrived(floor: i32) -> Event { todo!() } /// Araba kapıları açılmış durumda. fn car_door_opened() -> Event { todo!() } /// Araba kapıları kapanmış durumda. fn car_door_closed() -> Event { todo!() } /// Verilen kattaki asansör lobisinde yön düğmesine basıldı. fn lobby_call_button_pressed(floor: i32, dir: Direction) -> Event { todo!() } /// Asansör kabininde bir kat düğmesine basıldı. fn car_floor_button_pressed(floor: i32) -> Event { todo!() } fn main() { println!( "Zemin kattaki bir yolcu yukarı düğmesine basmış durumda: {:?}", lobby_call_button_pressed(0, Direction::Up) ); println!("Araba zemin kata ulaşmış durumda: {:?}", car_arrived(0)); println!("Araba kapısı açıldı: {:?}", car_door_opened()); println!( "Bir yolcu 3. katın düğmesine basmış durumda: {:?}", car_floor_button_pressed(3) ); println!("Araba kapısı kapandı: {:?}", car_door_closed()); println!("Araba 3. kata ulaşmış durumda: {:?}", car_arrived(3)); }