Rasgos de óxido

Rasgos de óxido

Un rasgo se refiere a un grupo de métodos definidos para un tipo específico. Los rasgos son increíbles ya que proporcionan una abstracción para la funcionalidad y la lógica que se puede compartir entre múltiples tipos.

Los rasgos admiten métodos concretos y abstractos, como veremos en este artículo.

ROJO DEFINE DEFINE

Para definir un rasgo en la óxido, usamos la palabra clave del rasgo, seguido del nombre y el cuerpo del rasgo. El cuerpo del rasgo puede contener método concreto o abstracto.

La sintaxis es como se muestra:

TraitTraitName
fnabs_method (& self);
fncon_method (& self)
// Funcionar cuerpo

Tenga en cuenta que un método de rasgo incluye el parámetro y. Este debe ser el primer parámetro en el método, y se deben proporcionar otros parámetros después de.

Información de rasgos
fn Descripción (y self) -> String;
fn kilometraje (y self) -> f64;

En el código anterior, definimos un estrecho llamado información que contiene métodos abstractos. Un objeto de automóvil puede usar los métodos anteriores. Sin embargo, dado que el método de descripción y valores de millaje puede diferir según el automóvil, la lógica debe aplicarse claramente.

Rasgo de implementación de óxido

Después de definir un rasgo, podemos necesitar implementarlo. La sintaxis para la implementación del método de rasgo es similar a un método de estructura.

Considere el ejemplo a continuación:

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

estructura
Modelo: cadena,
Fabricante: cadena,
Precio: i32

implicar información para el vehículo
fndescription (& self) -> string
returnformat!("Modelo: , fabricante: , precio: ", self.modelo,.fabricante, uno mismo.precio);

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

En el ejemplo anterior, definimos una estructura que contiene información para un vehículo. Luego podemos implementar métodos, como se muestra arriba.

En la función principal, podemos tener instancias para las estructuras del vehículo como se muestra:

fnmain ()
Let Car = Vehículo
Modelo: "Camry".Encadenar(),
Fabricante: "Toyota".Encadenar(),
Precio: 25295
;
Dejar motocicleta = vehículo
Modelo: "V-Max".Encadenar(),
Fabricante: "Yamaha".Encadenar(),
Precio: 27999
;

En el código anterior, definimos dos instancias de la estructura del vehículo con las propiedades implementadas de manera diferente.

Métodos de rasgo de llamadas

Una vez que hayamos implementado los métodos para un rasgo, podemos llamar al método utilizando la notación del punto como se muestra:

println!("", auto.descripción());

Esto debería volver:

Modelo: Camry, fabricante: Toyota, Precio: 25295

Conclusión

Esta guía proporciona los fundamentos para trabajar con rasgos en el lenguaje de óxido. Considere la documentación para obtener más información.