Rust Basics
Γενικοί Τύποι
Δημιουργήστε ένα struct όπου μία από τις τιμές του μπορεί να είναι οποιοσδήποτε τύπος
Option, Some & None
Ο τύπος Option σημαίνει ότι η τιμή μπορεί να είναι τύπου Some (υπάρχει κάτι) ή None:
Μπορείτε να χρησιμοποιήσετε συναρτήσεις όπως is_some()
ή is_none()
για να ελέγξετε την τιμή της Option.
Μακροεντολές
Οι μακροεντολές είναι πιο ισχυρές από τις συναρτήσεις επειδή διευρύνονται για να παράγουν περισσότερο κώδικα από αυτόν που έχετε γράψει χειροκίνητα. Για παράδειγμα, η υπογραφή μιας συνάρτησης πρέπει να δηλώσει τον αριθμό και τον τύπο των παραμέτρων που έχει η συνάρτηση. Οι μακροεντολές, από την άλλη πλευρά, μπορούν να πάρουν μεταβλητό αριθμό παραμέτρων: μπορούμε να καλέσουμε την println!("hello")
με ένα όρισμα ή την println!("hello {}", name)
με δύο ορίσματα. Επίσης, οι μακροεντολές διευρύνονται πριν ο μεταγλωττιστής ερμηνεύσει τη σημασία του κώδικα, έτσι μια μακροεντολή μπορεί, για παράδειγμα, να υλοποιήσει ένα trait σε έναν συγκεκριμένο τύπο. Μια συνάρτηση δεν μπορεί, επειδή καλείται κατά την εκτέλεση και ένα trait πρέπει να υλοποιηθεί κατά τη μεταγλώττιση.
Επανάληψη
Η επανάληψη είναι μια σημαντική έννοια στην προγραμματισμό. Σας επιτρέπει να εκτελέσετε ένα σύνολο εντολών επαναλαμβανόμενα, μέχρι να ικανοποιηθεί μια συγκεκριμένη συνθήκη. Στη γλώσσα προγραμματισμού Rust, υπάρχουν διάφοροι τρόποι για να επαναλάβετε κώδικα, ανάλογα με τις ανάγκες σας.
Επανάληψη με τη χρήση της loop
loop
Η εντολή loop
εκτελεί μια σειρά εντολών επαναλαμβανόμενα για αόριστο χρονικό διάστημα. Για να διακόψετε την επανάληψη, μπορείτε να χρησιμοποιήσετε την εντολή break
όταν μια συγκεκριμένη συνθήκη ικανοποιηθεί.
Επανάληψη με τη χρήση της while
while
Η εντολή while
εκτελεί μια σειρά εντολών επαναλαμβανόμενα όσο μια συγκεκριμένη συνθήκη είναι αληθής.
Επανάληψη με τη χρήση της for
for
Η εντολή for
εκτελεί μια σειρά εντολών επαναλαμβανόμενα για κάθε στοιχείο μιας συλλογής, όπως ένας πίνακας ή ένας διάνυσμα.
Αυτοί είναι οι βασικοί τρόποι επανάληψης στη γλώσσα προγραμματισμού Rust. Επιλέξτε τον κατάλληλο τρόπο επανάληψης ανάλογα με τις ανάγκες του προγράμματός σας.
Αναδρομικό Κουτί
Το αναδρομικό κουτί είναι ένα χρήσιμο εργαλείο στη γλώσσα προγραμματισμού Rust που μας επιτρέπει να αναφερόμαστε σε μια τιμή που αναφέρεται στον εαυτό της. Αυτό μας επιτρέπει να δημιουργούμε δομές δεδομένων που περιέχουν αναφορές στον εαυτό τους, δημιουργώντας έτσι αναδρομικές δομές.
Για να δημιουργήσουμε ένα αναδρομικό κουτί στη Rust, χρησιμοποιούμε τον τύπο δεδομένων Box
. Ο τύπος Box
είναι ένας έξυπνος δείκτης που αναλαμβάνει την αποδέσμευση της μνήμης όταν δεν χρειάζεται πλέον.
Για παράδειγμα, μπορούμε να δημιουργήσουμε ένα αναδρομικό κουτί που περιέχει έναν ακέραιο αριθμό ως εξής:
Στο παραπάνω παράδειγμα, δημιουργούμε ένα αναδρομικό κουτί με την τιμή 42 και το εκτυπώνουμε. Η μνήμη που καταλαμβάνει το αναδρομικό κουτί απελευθερώνεται αυτόματα όταν δεν υπάρχουν πλέον αναφορές σε αυτό.
Το αναδρομικό κουτί είναι ένα ισχυρό εργαλείο που μας επιτρέπει να δημιουργούμε πολύπλοκες δομές δεδομένων και αλγορίθμους στη Rust. Χρησιμοποιήστε το με προσοχή και κατανόηση των αναγκών σας για να αποφύγετε προβλήματα με τη μνήμη.
Συνθήκες
if
Η δομή ελέγχου if
χρησιμοποιείται για να εκτελέσει ένα τμήμα κώδικα μόνο αν μια συγκεκριμένη συνθήκη είναι αληθής. Η σύνταξη της δομής if
είναι η εξής:
Μπορείτε επίσης να προσθέσετε μια δομή else
για να εκτελέσετε έναν διαφορετικό κώδικα αν η συνθήκη είναι ψευδής:
Μπορείτε επίσης να χρησιμοποιήσετε τη δομή else if
για να ελέγξετε περισσότερες από μία συνθήκες:
αντιστοίχιση
The match
expression in Rust is used to compare a value against a series of patterns and execute the corresponding code block for the first matching pattern. It is similar to a switch statement in other programming languages.
The _
pattern is a catch-all pattern that matches any value. It is commonly used as the last pattern to handle all remaining cases.
The match
expression is powerful and flexible, allowing for complex pattern matching and exhaustive handling of all possible cases. It is often used in Rust to replace lengthy if-else chains and improve code readability.
βρόχος (άπειρος)
Ο βρόχος (loop) είναι μια δομή προγραμματισμού που επαναλαμβάνει μια συγκεκριμένη ενέργεια για έναν αόριστο αριθμό φορών. Αυτό σημαίνει ότι η ενέργεια θα εκτελείται συνεχώς μέχρι να δοθεί μια εντολή για να σταματήσει. Ο άπειρος βρόχος είναι ένας τύπος βρόχου που δεν έχει καμία συνθήκη για να τερματίσει και εκτελείται για πάντα, εκτός αν διακοπεί από τον χρήστη ή από κάποιο σφάλμα στο πρόγραμμα.
ενώ
The while
statement in Rust is used to create a loop that will continue executing as long as a certain condition is true. The syntax for the while
statement is as follows:
The condition
is a boolean expression that determines whether the loop should continue or not. If the condition is true, the code inside the loop will be executed. Once the code is executed, the condition will be checked again. If the condition is still true, the code will be executed again, and this process will continue until the condition becomes false.
Here is an example of how the while
statement can be used in Rust:
In this example, the loop will continue executing as long as the value of count
is less than 5. The value of count
will be printed to the console, and then incremented by 1. This process will repeat until count
reaches 5, at which point the condition will become false and the loop will terminate.
για
if let
Η δομή if let
στη Rust είναι μια συντομευμένη μορφή της match
που χρησιμοποιείται για να ελέγξει αν μια τιμή ταιριάζει με ένα συγκεκριμένο πρότυπο και να εκτελέσει κώδικα μόνο αν η ταιριάσουσα τιμή αντιστοιχεί στο πρότυπο. Αυτό είναι χρήσιμο όταν ενδιαφερόμαστε μόνο για ένα συγκεκριμένο πρότυπο και δεν μας ενδιαφέρει να καλύψουμε όλες τις πιθανές περιπτώσεις.
Η σύνταξη της if let
είναι η εξής:
Στο παραπάνω παράδειγμα, ο κώδικας εκτελείται μόνο αν η optional_value
είναι Some(value)
, δηλαδή αν η τιμή είναι μια αποθηκευμένη τιμή και όχι None
. Αν η optional_value
είναι None
, τότε εκτελείται ο κώδικας που βρίσκεται μέσα στην else
παράγραφο.
Η if let
μπορεί να χρησιμοποιηθεί με οποιοδήποτε πρότυπο που ταιριάζει με τον τύπο της τιμής που ελέγχεται. Μπορεί επίσης να χρησιμοποιηθεί με πολλαπλά πρότυπα χρησιμοποιώντας τον τελεστή |
.
while let
Ο όρος while let
χρησιμοποιείται για να εκτελεί μια επανάληψη ενώ μια τιμή παραμένει μια συγκεκριμένη τιμή. Αυτό είναι χρήσιμο όταν θέλουμε να εξετάσουμε μια τιμή και να εκτελέσουμε κώδικα μόνο αν η τιμή αντιστοιχεί σε ένα συγκεκριμένο πρότυπο.
Η σύνταξη του while let
είναι η εξής:
Στο παραπάνω παράδειγμα, ο κώδικας εκτελείται μόνο όταν η optional_value
είναι Some
και η τιμή της αντιστοιχεί στο pattern
. Αν η optional_value
είναι None
ή η τιμή της δεν αντιστοιχεί στο pattern
, η επανάληψη τερματίζεται.
Ο όρος while let
μπορεί να χρησιμοποιηθεί με οποιοδήποτε τύπο δεδομένων που υποστηρίζει το πρότυπο που καθορίζεται.
Traits
Δημιουργία μιας νέας μεθόδου για έναν τύπο
Δοκιμές
Πολλαπλές Νήματα
Arc
Ένα Arc μπορεί να χρησιμοποιήσει την Clone για να δημιουργήσει περισσότερες αναφορές πάνω στο αντικείμενο για να τις περάσει στα νήματα. Όταν η τελευταία αναφορά προς μια τιμή είναι εκτός εμβέλειας, η μεταβλητή απορρίπτεται.
Νήματα
Σε αυτήν την περίπτωση θα περάσουμε στο νήμα μια μεταβλητή που θα μπορεί να τροποποιήσει.
Last updated