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.

struktūraPersona {
nosaukums: Stīga,
vecums: 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.

ļaut persona = persona {
nosaukums: Stīga::no("Džons"),
vecums: 27,
is_student: taisnība,
};

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 Persona {
// Definējiet konstruktora funkciju "new", kas izmanto "name", "age" un
// `is_students` parametri
fnjauns(nosaukums: Stīga, vecums: u8, ir_students: bool) -> Pats {
// Izveidojiet jaunu struktūras "Persona" instanci un inicializējiet tās laukus
// ar norādītajām vērtībām
Pats {
vārds,
vecums,
ir_students,
}
}
}

// Izsauciet struktūras "Persona" konstruktora funkciju "new" un piešķiriet
// iegūtais gadījums uz "persona".
ļaut persona = Persona:: jauns(Stīga::no("Džons"), 27, taisnība);

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.

// deklarēt Personas struktūru
struktūraPersona {
nosaukums: Stīga,
vecums: u8,
is_student: bool,
}

fngalvenais() {
// konstruēt struktūru
ļautmut persona = persona {
nosaukums: Stīga::no("Džons"),
vecums: 27,
is_student: taisnība,
};

// izdrukā struktūras nosaukumu un vecuma laukus
println!("Vārds: {}", persona.vārds);
println!("Vecums: {}", persona.vecums);

// mainiet lauku is_student
persona.ir_students = viltus;

println!("Vai students: {}", persona.ir_students);
}

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

Struktūru deklarēšanas metodes

Atšķirībā no struktūras C, varat definēt metodes Rust konstrukcijā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.

struktūraPersona {
nosaukums: Stīga,
vecums: u8,
is_student: bool,
}

impl Persona {
fnpasaki Sveiki(&sevi) {
println!("Sveiki, mani sauc {}, un man ir {} gadi.", sevi.name,
sevi.vecums);
}

fnir_dzimšanas diena(&mutsevi) {
sevi.vecums += 1;
}
}

fngalvenais() {
ļautmut persona = persona {
nosaukums: Stīga::no("Džons"),
vecums: 27,
is_student: taisnība,
};

persona.say_hello();

persona.ir_dzimšanas diena();

println!("Jaunais laikmets: {}", persona.vecums);
}

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.

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.