Rokasgrāmata darbam ar rūsas konstrukcijām

Rokasgrāmata darbam ar rūsas konstrukcijām
Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Viena no galvenajām iezīmēm, kas padara Rust jaudīgāku un pievilcīgāku, ir atbalsts konstrukcijām. Struktūras ir salikti datu tipi saistītu datu grupēšanai. Tie ļauj definēt pielāgotus datu tipus ar nosauktiem laukiem, kas uzlabo koda organizēšanu un atvieglo datu manipulācijas.





Varat izmantot struktūras, lai attēlotu dažādus objektus, tostarp lietotāja definētus datu tipus un konfigurācijas. Struktūras ir elastīgākas nekā daudzas citas datu struktūras. To spēja iekapsulēt saistītos datus padara tos noderīgus, jo tie rada loģiskāku reālās pasaules objektu modeli.





Struktūru un konstrukciju lauku definēšana

Jūs definēsit struktūru, izmantojot struktūra atslēgvārds, kam seko struktūras nosaukums. Sekojiet tam, norādot struktūras lauku nosaukumus un tos Rūsas datu veidi iekšpusē pāris cirtaini lencēm.





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

Šis Persona struktūrai ir trīs lauki. The nosaukums lauks ir virkne vecums lauks ir neparakstīts 8 bitu vesels skaitlis, un ir_students lauks ir Būla vērtība.

Varat izmantot struct literāļus, lai izveidotu struktūras gadījumus pēc struktūras definīcijas. Struktūras literāļi norāda struktūras lauku vērtības.



kā parādīt tālruņa ekrānu datorā
AFE6F7F35A424AB658851FE123CCFCD6491A2460

The persona mainīgais ir gadījums Persona struct, izveidots ar struct literal. Šis burts veido visus struktūras laukus ar to atbilstošā datu tipa vērtībām.

Konstruktoru izmantošana konstrukciju izveidošanai

Varat arī izmantot konstruktora funkciju, lai izveidotu struktūras gadījumu.





 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);

Iepriekš minētā programma definē konstruktoru Persona strukturēt ar impl atslēgvārds. The jauns konstruktors izmanto struct laukus kā argumentus un atgriež jaunu struktūras gadījumu ar inicializētajām vērtībām.

Jūs varat izveidot a Persona piemēram ar jauns konstruktors, nododot tam atbilstošus argumentus.





Piekļuve struktūras laukiem un to modificēšana

Struktūras laukiem var piekļūt un tos mainīt, izmantojot punktu apzīmējumu. Jūs vienkārši izmantojiet punktu ( . ) operatoru, kam seko lauka nosaukums, lai piekļūtu vai mainītu tā vērtību.

kā Android ierīcē apskatīt saglabāto wifi paroli
 // 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);
}

Programma izveido struktūru, izveido konstrukciju un izdrukā vārds, un vecums laukos un modificē ir_students pirms lauka drukāšanas.

  Piekļuves struktūras laukiem un to modificēšanas rezultāts

Struktūru deklarēšanas metodes

Atšķirībā no struktūras C , varat definēt metodes Rust struktūrām, kas darbojas instancē. Metodes ir funkcijas, kas izmanto atsauci uz struktūru piekļuvei un modificēšanai. Varat arī izmantot punktu apzīmējumu, lai izsauktu struktūras metodes un piekļūtu to funkcionalitātei.

Lūk, kā jūs varat deklarēt konstrukciju metodes un izmantot šīs metodes darbību veikšanai.

 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);
}

Programma definē divas metodes Persona struktūra. The pasaki Sveiki metode izmanto atsauci uz sevi un izdrukā apsveikumu, kurā norādīts personas vārds un vecums. The ir_dzimšanas diena metode izmanto mainīgu atsauci uz sevi un palielina personas vecumu.

  Struktūru deklarēšanas metožu rezultāts

Rust īpašumtiesību modelis optimizē atmiņas pārvaldību

Struktūras ir daudzpusīgas datu struktūras, kas darbojas kā minimāls klases ekvivalents.

Tāpat kā ar citām Rust datu struktūrām, strādājot ar struktūras mainīgajiem, jums jāievēro Rust īpašumtiesību noteikumi. Īpašumtiesību modelis nodrošina efektīvu programmu atmiņas pārvaldību, novēršot tādas izplatītas problēmas kā nulles un nokarenas norādes.