Un tratto si riferisce a un gruppo di metodi definiti per un tipo specifico. I tratti sono incredibili in quanto forniscono un'astrazione per la funzionalità e la logica che può essere condivisa tra più tipi.
I tratti supportano metodi concreti e astratti, come vedremo in questo articolo.
La ruggine definisce il tratto
Per definire un tratto in ruggine, usiamo la parola chiave del tratto, seguita dal nome e dal corpo del tratto. Il corpo del tratto può contenere un metodo in cemento o astratto.
La sintassi è come mostrata:
traittraitnameSi noti che un metodo di tratto include il parametro. Questo deve essere il primo parametro nel metodo e altri parametri devono essere forniti dopo.
Tratto InfoNel codice sopra, definiamo uno stretto chiamato Info che contiene metodi astratti. Un oggetto auto può utilizzare i metodi sopra. Tuttavia, poiché il metodo di descrizione e i valori di chilometraggio possono differire a seconda dell'auto, la logica deve essere applicata distintamente.
Tratto di implementazione della ruggine
Dopo aver definito un tratto, possiamo aver bisogno di implementarlo. La sintassi per l'implementazione del metodo del tratto è simile a un metodo struct.
Considera l'esempio seguente:
traitinfoNell'esempio sopra, definiamo una struttura che contiene informazioni per un veicolo. Possiamo quindi implementare metodi, come mostrato sopra.
Nella funzione principale, possiamo avere istanze per le strutture del veicolo come mostrato:
fnMain ()Nel codice sopra, definiamo due istanze della struttura del veicolo con le proprietà implementate in modo diverso.
Chiamando metodi di tratto
Una volta implementati i metodi per un tratto, possiamo chiamare il metodo usando la notazione punto come mostrato:
println!("", auto.descrizione());Questo dovrebbe tornare:
Modello: Camry, produttore: Toyota, Prezzo: 25295Conclusione
Questa guida fornisce i fondamentali per lavorare con i tratti nel linguaggio della ruggine. Considera la documentazione per saperne di più.