Ένας οδηγός για την εργασία με κατασκευές σκουριάς

Ένας οδηγός για την εργασία με κατασκευές σκουριάς
Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του MUO. Όταν κάνετε μια αγορά χρησιμοποιώντας συνδέσμους στον ιστότοπό μας, ενδέχεται να κερδίσουμε μια προμήθεια θυγατρικών. Διαβάστε περισσότερα.

Ένα βασικό χαρακτηριστικό που κάνει το Rust ισχυρό και πιο ελκυστικό είναι η υποστήριξή του για δομές. Οι δομές είναι σύνθετοι τύποι δεδομένων για ομαδοποίηση σχετικών δεδομένων. Σας επιτρέπουν να ορίζετε προσαρμοσμένους τύπους δεδομένων με επώνυμα πεδία που βελτιώνουν την οργάνωση κώδικα και διευκολύνουν τον χειρισμό δεδομένων.





φθηνά ηλεκτρονικά καταστήματα ηλεκτρονικών αγορών

Μπορείτε να χρησιμοποιήσετε structs για να αναπαραστήσετε διάφορα αντικείμενα, συμπεριλαμβανομένων τύπων δεδομένων και διαμορφώσεων που ορίζονται από το χρήστη. Οι δομές είναι πιο ευέλικτες από πολλές άλλες δομές δεδομένων. Η ικανότητά τους να ενθυλακώνουν σχετικά δεδομένα τα καθιστά χρήσιμα καθώς δημιουργούν ένα πιο λογικό μοντέλο αντικειμένων του πραγματικού κόσμου.





Καθορισμός δομών και πεδίων δομών

Θα ορίσετε μια δομή χρησιμοποιώντας το struct λέξη-κλειδί ακολουθούμενη από ένα όνομα για τη δομή. Ακολουθήστε αυτό καθορίζοντας τα ονόματα των πεδίων της δομής και τους Τύποι δεδομένων σκουριάς μέσα σε ένα ζευγάρι σγουρά τιράντες.





 struct Person { 
    name: String,
    age: u8,
    is_student: bool,
}

Αυτό Πρόσωπο Η δομή έχει τρία πεδία. ο όνομα πεδίο είναι μια χορδή, το ηλικία Το πεδίο είναι ένας ανυπόγραφος ακέραιος αριθμός 8 bit και το είναι_φοιτητής Το πεδίο είναι boolean.

Μπορείτε να χρησιμοποιήσετε κυριολεκτικά struct για να δημιουργήσετε στιγμιότυπα δομής μετά τον ορισμό της δομής. Τα κυριολεκτικά δομών καθορίζουν τις τιμές των πεδίων μιας δομής.



 let person = Person { 
    name: String::from("John"),
    age: 27,
    is_student: true,
};

ο πρόσωπο η μεταβλητή είναι ένα παράδειγμα του Πρόσωπο struct, που δημιουργήθηκε με struct literal. Αυτό το κυριολεκτικό στιγμιότυπο όλων των πεδίων της δομής με τιμές του αντίστοιχου τύπου δεδομένων τους.

πόσοι εξωτερικοί σκληροί δίσκοι xbox one

Χρήση κατασκευαστών για τη δημιουργία δομών

Μπορείτε επίσης να χρησιμοποιήσετε μια συνάρτηση κατασκευαστή για να δημιουργήσετε μια παρουσία μιας δομής.





 impl Person { 
    // Define a constructor function `new` that takes `name`, `age` and
    // `is_student` parameters
    fn new(name: String, age: u8, is_student: bool) -> Self {
        // Create a new instance of `Person` struct and initialize its fields
        // with the provided values
        Self {
            name,
            age,
            is_student,
        }
    }
}

// Call the `new` constructor function of the `Person` struct and assign the
// resulting instance to `person`
let person = Person::new(String::from("John"), 27, true);

Το παραπάνω πρόγραμμα ορίζει έναν κατασκευαστή για το Πρόσωπο struct με το υπονοώ λέξη-κλειδί. ο νέος Ο κατασκευαστής λαμβάνει τα πεδία struct ως ορίσματα και επιστρέφει μια νέα παρουσία της δομής με τις αρχικοποιημένες τιμές.

Μπορείτε να δημιουργήσετε ένα Πρόσωπο παράδειγμα με το νέος κατασκευαστή, περνώντας του κατάλληλα ορίσματα.





Πρόσβαση και τροποποίηση πεδίων δομής

Μπορείτε να αποκτήσετε πρόσβαση και να τροποποιήσετε τα πεδία δομής χρησιμοποιώντας έναν συμβολισμό κουκκίδων. Χρησιμοποιείτε απλώς την τελεία ( . ) τελεστής ακολουθούμενος από το όνομα του πεδίου για πρόσβαση ή αλλαγή της τιμής του.

 // declare a Person struct 
struct Person {
    name: String,
    age: u8,
    is_student: bool,
}

fn main() {
    // instantiate a struct
    let mut person = Person {
        name: String::from("John"),
        age: 27,
        is_student: true,
    };

    // print the name and age fields of the struct
    println!("Name: {}", person.name);
    println!("Age: {}", person.age);

    // modifiy the is_student field
    person.is_student = false;

    println!("Is student: {}", person.is_student);
}

Το πρόγραμμα δημιουργεί μια δομή, δημιουργεί στιγμιότυπο της δομής, εκτυπώνει την όνομα, και ηλικία πεδία και τροποποιεί το είναι_φοιτητής πριν από την εκτύπωση του πεδίου.

  Αποτέλεσμα πρόσβασης και τροποποίησης πεδίων δομής

Δήλωση Μεθόδων για Δομές

Διαφορετικός κατασκευάζει σε C , μπορείτε να ορίσετε μεθόδους σε δομές Rust που λειτουργούν σε μια παρουσία. Οι μέθοδοι είναι συναρτήσεις που λαμβάνουν αναφορά σε μια δομή για πρόσβαση και τροποποίηση. Μπορείτε επίσης να χρησιμοποιήσετε τον συμβολισμό κουκκίδων για να καλέσετε τις μεθόδους μιας δομής και να αποκτήσετε πρόσβαση στη λειτουργικότητά τους.

Δείτε πώς μπορείτε να δηλώσετε μεθόδους για δομές και να χρησιμοποιήσετε αυτές τις μεθόδους για να εκτελέσετε λειτουργίες:

 struct Person { 
    name: String,
    age: u8,
    is_student: bool,
}

impl Person {
    fn say_hello(&self) {
        println!("Hello, my name is {} and I'm {} years old.", self.name,
          self.age);
    }

    fn have_birthday(&mut self) {
        self.age += 1;
    }
}

fn main() {
    let mut person = Person {
        name: String::from("John"),
        age: 27,
        is_student: true,
    };

    person.say_hello();

    person.have_birthday();

    println!("New age: {}", person.age);
}

Το πρόγραμμα ορίζει δύο μεθόδους για το Πρόσωπο struct. ο πες γεια μέθοδος λαμβάνει μια αναφορά σε εαυτός και εκτυπώνει έναν χαιρετισμό που περιλαμβάνει το όνομα και την ηλικία του ατόμου. ο έχουν_γενέθλια μέθοδος παίρνει μια μεταβλητή αναφορά σε εαυτός και αυξάνει την ηλικία του ατόμου.

το τηλέφωνό μου έχει διεύθυνση IP
  Αποτέλεσμα Δήλωσης Μεθόδων για Δομές

Το μοντέλο ιδιοκτησίας της Rust βελτιστοποιεί τη διαχείριση της μνήμης

Οι δομές είναι ευέλικτες δομές δεδομένων, που λειτουργούν ως ένα είδος ισοδύναμου ελάχιστης κλάσης.

Όπως και με άλλες δομές δεδομένων Rust, θα πρέπει να ακολουθείτε τους κανόνες ιδιοκτησίας του Rust όταν εργάζεστε με μεταβλητές δομής. Το μοντέλο ιδιοκτησίας διασφαλίζει ότι διαχειρίζεστε αποτελεσματικά τη μνήμη στα προγράμματά σας, αποτρέποντας κοινά ζητήματα όπως μηδενικούς δείκτες και κρεμαστούς δείκτες.