Rustegenskaper

Rustegenskaper

En egenskap refererer til en gruppe metoder definert for en bestemt type. Egenskaper er utrolige ettersom de gir en abstraksjon for funksjonalitet og logikk som kan deles mellom flere typer.

Egenskaper støtter konkrete og abstrakte metoder, som vi vil se i denne artikkelen.

Rust definer egenskap

For å definere en egenskap i rust, bruker vi trekknøkkelordet, etterfulgt av egenskapens navn og kropp. Egenskapskroppen kan inneholde enten betong eller abstrakt metode.

Syntaksen er som vist:

TraitTraitName
fnabs_method (& self);
fncon_method (& self)
// Funksjonskropp

Merk at en egenskapsmetode inkluderer & selvparameteren. Dette må være den første parameteren i metoden, og andre parametere må være gitt etter.

egenskapsinfo
fn beskrivelse (& self) -> streng;
fn kjørelengde (& self) -> f64;

I koden over definerer vi en sund som kalles informasjon som inneholder abstrakte metoder. Et bilobjekt kan bruke metodene ovenfor. Siden metoden for beskrivelses- og kjørelengdeverdier kan variere avhengig av bilen, må logikken imidlertid brukes tydelig.

Rust implementerer egenskap

Etter å ha definert en egenskap, kan vi trenge å implementere den. Syntaks for implementering av trekkmetode ligner på en strukturmetode.

Tenk på eksemplet nedenfor:

TraitInfo
fndescription (& self) -> streng;
fnmileage (& self) -> f64;

structVehicle
Modell: streng,
Produsent: streng,
Pris: I32

implo for kjøretøy
fndescription (& self) -> streng
ReturnFormat!("Modell: , produsent: , pris: ", selv.modell, selv.produsent, selv.pris);

fnmileage (& self) -> f64
RETURN10000.33;

I eksemplet ovenfor definerer vi en struktur som har informasjon for et kjøretøy. Vi kan deretter implementere metoder, som vist ovenfor.

I hovedfunksjonen kan vi ha tilfeller for kjøretøystrukturene som vist:

fnMain ()
La bil = kjøretøy
Modell: "Camry".to_string (),
Produsent: "Toyota".to_string (),
Pris: 25295
;
La motorsykkel = kjøretøy
Modell: "V-Max".to_string (),
Produsent: "Yamaha".to_string (),
Pris: 27999
;

I koden over definerer vi to forekomster av kjøretøystrukturen med egenskapene som er implementert annerledes.

Kallende trekkmetoder

Når vi har implementert metodene for en egenskap, kan vi kalle metoden ved å bruke DOT -notasjonen som vist:

Println!("", bil.beskrivelse());

Dette skulle komme tilbake:

Modell: Camry, Produsent: Toyota, Pris: 25295

Konklusjon

Denne guiden gir det grunnleggende for å jobbe med egenskaper i rustspråket. Vurder dokumentasjonen for å lære mer.