Η εκτύπωση στην 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, για προσαρμοσμένα μαγικά αντικείμενα.
Μερικές φορές, οι μάγοι πρέπει να μορφοποιούν τα μαγικά λόγια τους πριν τα χαράξουν στα ειλητάρια. Θα γράψεις μια συνάρτηση που μορφοποιεί τρεις μαγικές λέξεις σε ένα μόνο μήνυμα.
Υλοποίησε μια συνάρτηση με το όνομα format_magical_chant που επιστρέφει μια μορφοποιημένη συμβολοσειρά με τη μορφή "chant1-chant2-chant3".
Παράδειγμα:
let result = format_magical_chant("Spark", "Shine", "Glow");
assert_eq!(result, "Spark-Shine-Glow");
Το βασίλειο του 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]");
Ως μαθητευόμενος μάγος, η αποσφαλμάτωση είναι απαραίτητη για τις σύνθετες μαγικές κατασκευές.
Θα δημιουργήσεις μια συνάρτηση που εκτυπώνει ένα 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 }");
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Cairo με 25 έννοιες68 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.