Darbo su rūdžių konstrukcijomis vadovas

Darbo su rūdžių konstrukcijomis vadovas
Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Viena iš pagrindinių savybių, dėl kurių „Rust“ yra galinga ir patrauklesnė, yra konstrukcijų palaikymas. Struktūros yra sudėtiniai duomenų tipai, skirti grupuoti susijusius duomenis. Jie leidžia apibrėžti pasirinktinius duomenų tipus su pavadintais laukais, kurie pagerina kodo organizavimą ir palengvina duomenų apdorojimą.





Galite naudoti struktūras įvairiems objektams, įskaitant vartotojo apibrėžtus duomenų tipus ir konfigūracijas, pavaizduoti. Struktūros yra lankstesnės nei daugelis kitų duomenų struktūrų. Dėl jų gebėjimo įtraukti susijusius duomenis jie yra naudingi, nes jie sukuria logiškesnį realaus pasaulio objektų modelį.





Struktūrų ir struktūrų laukų apibrėžimas

Struktūrą apibrėžsite naudodami struktūra raktinis žodis, po kurio nurodomas struktūros pavadinimas. Atlikite tai nurodydami struktūros laukų pavadinimus ir jų pavadinimus Rūdžių duomenų tipai garbanotų petnešų viduje.





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

Tai Asmuo struktūra turi tris laukus. The vardas laukas yra eilutė amžiaus laukas yra beženklis 8 bitų sveikasis skaičius, o yra_studentas laukas yra loginis.

Galite naudoti struct literals, kad sukurtumėte struktūrų egzempliorius po struct apibrėžimo. Struktūros literalai nurodo struktūros laukų reikšmes.



kaip pasirinkti kelias dainas „Spotify“
AFE6F7F35A424AB658851FE123CFCD6491A2460

The asmuo kintamasis yra pavyzdys Asmuo struct, sukurtas naudojant struct literalą. Šis pažodinis tekstas parodo visus struktūros laukus su atitinkamo duomenų tipo reikšmėmis.

Konstruktorių naudojimas konstrukcijoms kurti

Taip pat galite naudoti konstruktoriaus funkciją, kad sukurtumėte struktūros egzempliorių.





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

Aukščiau pateikta programa apibrėžia konstruktorių Asmuo statyti su impl raktažodį. The naujas konstruktorius priima struct laukus kaip argumentus ir grąžina naują struktūros egzempliorių su inicijuotomis reikšmėmis.

USB įrenginys nuolat atjungia ir vėl prijungia „Windows 10“

Galite sukurti a Asmuo pavyzdys su naujas konstruktorius, perduodamas jam tinkamus argumentus.





Prieiga prie struktūrų laukų ir jų keitimas

Galite pasiekti ir modifikuoti struktūros laukus naudodami taško žymėjimą. Jūs tiesiog naudojate tašką ( . ) operatorių, po kurio nurodomas lauko pavadinimas, kad pasiektumėte arba pakeistumėte jo reikšmę.

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

Programa sukuria struktūrą, sukuria jos egzempliorius, išspausdina vardas, ir amžiaus laukus ir modifikuoja yra_studentas lauką prieš spausdindami lauką.

Kaip atsisiųsti netflix į macbook
  Prieigos prie struktūrų laukų ir jų keitimo rezultatas

Konstrukcijų deklaravimo metodai

Skirtingai nei struktūros C , galite apibrėžti metodus Rust struktūrose, kurios veikia egzemplioriuje. Metodai yra funkcijos, kurios naudoja nuorodą į struktūrą, kad būtų galima pasiekti ir modifikuoti. Taip pat galite naudoti taško žymėjimą, norėdami iškviesti struktūros metodus ir pasiekti jų funkcijas.

Štai kaip galite deklaruoti struktūrų metodus ir naudoti šiuos metodus operacijoms atlikti:

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

Programa apibrėžia du metodus Asmuo struktūra. The sakyk labas metodas remiasi savarankiškai ir atspausdina sveikinimą, kuriame nurodomas asmens vardas ir amžius. The turėti_gimtadienį metodas turi kintamą nuorodą savarankiškai ir padidina asmens amžių.

  Konstrukcijų deklaravimo metodų rezultatas

„Rust“ nuosavybės modelis optimizuoja atminties valdymą

Struktūros yra universalios duomenų struktūros, veikiančios kaip tam tikras minimalus klasės atitikmuo.

Kaip ir su kitomis Rust duomenų struktūromis, dirbdami su struktūros kintamaisiais turėtumėte vadovautis Rust nuosavybės taisyklėmis. Nuosavybės modelis užtikrina efektyvų programų atminties valdymą, užkertant kelią įprastoms problemoms, pvz., nulinėms ir kabančioms nuorodoms.