Cechy rdzy

Cechy rdzy

Cecha odnosi się do grupy metod zdefiniowanych dla określonego typu. Cechy są niesamowite, ponieważ zapewniają abstrakcję funkcjonalności i logiki, którą można udostępnić między wieloma typami.

Cechy wspierają konkretne i abstrakcyjne metody, jak zobaczymy w tym artykule.

Rdza Zdefiniuj cechę

Aby zdefiniować cechę w rdzy, używamy słowa kluczowego cechy, a następnie nazwa i ciało cechy. Ciało cechy może zawierać metodę betonową lub abstrakcyjną.

Składnia jest jak pokazana:

TRAITTRAITNAME
fnabs_method (& self);
fncon_method (& self)
// Ciało funkcjonalne

Zauważ, że metoda cechy zawiera i samozatrudniony. To musi być pierwszy parametr w metodzie, a inne parametry należy podać po.

Informacje o cechach
FN Opis (& self) -> String;
FN Mileage (& Self) -> f64;

W powyższym kodzie definiujemy cieśnin o nazwie Info zawierający metody abstrakcyjne. Obiekt samochodowy może użyć powyższych metod. Ponieważ jednak metoda opisu i wartości przebiegu może się różnić w zależności od samochodu, logika musi być wyraźnie stosowana.

Rust Eld Cech

Po zdefiniowaniu cechy możemy jej wdrożyć. Składnia implementacji metody cechy jest podobna do metody struktury.

Rozważ poniższy przykład:

tactinfo
fndescription (& self) -> ciąg;
fnMileage (& self) -> f64;

struktura
Model: String,
Producent: String,
Cena: i32

Informacje o IMP dla pojazdu
fndescription (& self) -> ciąg
returnFormat!("Model: , producent: , cena: ", self.Model, ja.Producent, ja.cena);

fnMileage (& self) -> f64
Return10000.33;

W powyższym przykładzie definiujemy strukturę, która przechowuje informacje dla pojazdu. Następnie możemy wdrożyć metody, jak pokazano powyżej.

W głównej funkcji możemy mieć instancje struktur pojazdu, jak pokazano:

fnmain ()
Niech samochód = pojazd
Model: „Camry”.to_string (),
Producent: „Toyota”.to_string (),
Cena: 25295
;
Niech motocykl = pojazd
Model: „V-Max”.to_string (),
Producent: „Yamaha”.to_string (),
Cena: 27999
;

W powyższym kodzie definiujemy dwa przypadki struktury pojazdu o właściwościach zaimplementowanych inaczej.

Wzywanie metod cech

Po wdrożeniu metod cechy możemy wywołać metodę za pomocą notacji kropkowej, jak pokazano:

println!("", samochód.opis());

To powinno powrócić:

Model: Camry, producent: Toyota, cena: 25295

Wniosek

Ten przewodnik zapewnia podstawy pracy z cechami w języku rdzy. Rozważ dokumentację, aby dowiedzieć się więcej.