Διαδρομές
/
Cairo
Cairo
/
Ασκήσεις
/
Το Βασίλειο των Ηχώ
Το Βασίλειο των Ηχώ

Το Βασίλειο των Ηχώ

Άσκηση εκμάθησης

Εισαγωγή

Η εκτύπωση στην Cairo σου επιτρέπει να εμφανίζεις μηνύματα ή πληροφορίες αποσφαλμάτωσης κατά την εκτέλεση του προγράμματος.

Τα βασικά

Η Cairo παρέχει δύο macros για εκτύπωση:

  • println!: Τυπώνει ένα μήνυμα ακολουθούμενο από αλλαγή γραμμής.
  • print!: Τυπώνει ένα μήνυμα χωρίς αλλαγή γραμμής.
println!("Hello, Cairo!"); 
println!("x = {}, y = {}", 10, 20); 

Τα placeholders {} αντικαθίστανται από τις τιμές που παρέχεις.

Μορφοποίηση συμβολοσειρών

Χρησιμοποίησε το format! για να δημιουργήσεις ένα ByteArray χωρίς να το εκτυπώσεις αμέσως:

let result = format!("{}-{}-{}", "tic", "tac", "toe");
println!("{}", result); // Output: tic-tac-toe

Προσαρμοσμένοι τύποι δεδομένων

Για προσαρμοσμένους τύπους, υλοποίησε το Display ή κάνε derive το Debug για εκτύπωση:

#[derive(Debug)]
struct Point { x: u8, y: u8 }

let p = Point { x: 3, y: 4 };
println!("{:?}", p); // Debug output: Point { x: 3, y: 4 }

Εκτύπωση δεκαεξαδικών

Χρησιμοποίησε το {:x} για να εκτυπώσεις ακέραιους σε δεκαεξαδική μορφή:

println!("{:x}", 255); // Output: ff

Οδηγίες

Στον μαγικό κόσμο του Echoes υπάρχει ένα ισχυρό ξόρκι που λέγεται "EchoSpeak". Αυτό το ξόρκι επιτρέπει στους μάγους να επικοινωνούν τις σκέψεις και τις παρατηρήσεις τους μέσω προφορικών λέξεων, τις οποίες καταγράφουν μαγικές πένες. Για να κατακτήσουν αυτό το ξόρκι, οι μάγοι πρέπει να μάθουν να διατυπώνουν τα λόγια και τις σκέψεις τους με σαφήνεια και συντομία, είτε πρόκειται για αριθμούς, αντικείμενα είτε για σύνθετες μαγικές κατασκευές.

Η αποστολή σου ως Μαθητευόμενου Μάγου είναι να κατακτήσεις την τέχνη του EchoSpeak. Αυτό απαιτεί να μάθεις πώς να εκτυπώνεις διάφορους τύπους μαγικών δεδομένων στα μαγεμένα ειλητάρια. Το EchoSpeak λειτουργεί παίρνοντας ένα ειδικό μαγικό μελάνι, που αναπαρίσταται από το ByteArray, και χαράσσοντας μορφοποιημένα μηνύματα στο ειλητάριο με ξόρκια όπως τα println! και print!.

Ωστόσο, όταν έχει να κάνει με προσαρμοσμένες μαγικές κατασκευές, όπως μαγεμένα αντικείμενα ή ξόρκια, το EchoSpeak χρειάζεται μια ειδική επωδό για να καταλάβει πώς να αναπαραστήσει αυτά τα αντικείμενα. Εδώ μπαίνει η δική σου μαγεία: να μάθεις να υλοποιείς ειδικά ξόρκια, γνωστά ως traits, για προσαρμοσμένα μαγικά αντικείμενα.

1. Μορφοποίηση Μαγικών Λέξεων

Μερικές φορές, οι μάγοι πρέπει να μορφοποιούν τα μαγικά λόγια τους πριν τα χαράξουν στα ειλητάρια. Θα γράψεις μια συνάρτηση που μορφοποιεί τρεις μαγικές λέξεις σε ένα μόνο μήνυμα.

Υλοποίησε μια συνάρτηση με το όνομα format_magical_chant που επιστρέφει μια μορφοποιημένη συμβολοσειρά με τη μορφή "chant1-chant2-chant3".

Παράδειγμα:

let result = format_magical_chant("Spark", "Shine", "Glow");
assert_eq!(result, "Spark-Shine-Glow");

2. Αντήχηση Προσαρμοσμένων Μαγεμένων Αντικειμένων

Το βασίλειο του Echoes είναι γεμάτο μαγεμένα αντικείμενα. Ένα τέτοιο αντικείμενο είναι το EchoStone, που περιέχει δύο μαγικά χαρακτηριστικά: power και duration. Η αποστολή σου είναι να υλοποιήσεις τη συνάρτηση stringify_echo_stone, που μετατρέπει ένα EchoStone σε ByteArray σε μια ειδική μορφή "EchoStone [power: x, duration: y]", υλοποιώντας το trait Display.

Παράδειγμα:

let stone = EchoStone { power: 100, duration: 300 };
assert_eq!(stringify(stone), "EchoStone [power: 100, duration: 300]");

3. Αποσφαλμάτωση της Μαγείας

Ως μαθητευόμενος μάγος, η αποσφαλμάτωση είναι απαραίτητη για τις σύνθετες μαγικές κατασκευές. Θα δημιουργήσεις μια συνάρτηση που εκτυπώνει ένα EchoStone για αποσφαλμάτωση, χρησιμοποιώντας το trait Debug. Η μορφή πρέπει να είναι: "Debugging EchoStone: { power: x, duration: y }".

Παράδειγμα:

let stone = EchoStone { power: 25, duration: 10 };
assert_eq!(format!("{:?}", stone), "Debugging EchoStone: { power: 25, duration: 10 }");
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Cairo Exercism

Έτοιμος να ξεκινήσεις την άσκηση Το Βασίλειο των Ηχώ;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Cairo με 25 έννοιες68 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.