Traços de ferrugem

Traços de ferrugem

Uma característica refere -se a um grupo de métodos definidos para um tipo específico. As características são incríveis, pois fornecem uma abstração para funcionalidade e lógica que podem ser compartilhadas entre vários tipos.

Características suportam métodos concretos e abstratos, como veremos neste artigo.

Rust Defina característica

Para definir uma característica em ferrugem, usamos a palavra -chave de característica, seguida pelo nome e corpo da característica. O corpo da característica pode conter um método concreto ou abstrato.

A sintaxe é como mostrado:

traitatraitname
fnabs_method (& self);
fnCon_method (& self)
// Corpo de função

Observe que um método de característica inclui o parâmetro e auto. Este deve ser o primeiro parâmetro no método, e outros parâmetros devem ser fornecidos após.

informações de características
FN Descrição (& self) -> string;
FN MILAGE (& self) -> f64;

No código acima, definimos um estreito chamado informações que contém métodos abstratos. Um objeto de carro pode usar os métodos acima. No entanto, como o método de descrição e os valores de quilometragem pode diferir dependendo do carro, a lógica deve ser aplicada distintamente.

Traço de implementação de ferrugem

Depois de definir uma característica, podemos precisar implementá -la. A sintaxe para a implementação do método de características é semelhante a um método de estrutura.

Considere o exemplo abaixo:

traitinfo
fndescription (& self) -> string;
fnmileage (& self) -> f64;

estrutura
Modelo: String,
Fabricante: String,
Preço: i32

Impl Info para veículo
fndescription (& self) -> string
retorno formato!("Model: , fabricante: , preço: ", self.modelo, eu.fabricante, eu.preço);

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

No exemplo acima, definimos uma estrutura que mantém informações para um veículo. Podemos então implementar métodos, como mostrado acima.

Na função principal, podemos ter instâncias para as estruturas do veículo, como mostrado:

fnmain ()
Deixe o carro = veículo
Modelo: "Camry".para sequenciar(),
Fabricante: "Toyota".para sequenciar(),
Preço: 25295
;
Deixe a motocicleta = veículo
Modelo: "V-Max".para sequenciar(),
Fabricante: "Yamaha".para sequenciar(),
Preço: 27999
;

No código acima, definimos duas instâncias da estrutura do veículo com as propriedades implementadas de maneira diferente.

Chamando métodos de características

Depois de implementarmos os métodos para uma característica, podemos chamar o método usando a notação de ponto como mostrado:

println!("", carro.descrição());

Isso deve retornar:

Modelo: Camry, Fabricante: Toyota, Preço: 25295

Conclusão

Este guia fornece os fundamentos para trabalhar com características na linguagem de ferrugem. Considere a documentação para saber mais.