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.
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.
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.