Si vous souhaitez explorer plus de sujets de rouille, consultez notre liste de rouille pour en savoir plus.
Le paramètre
Lorsque vous déclarez des types génériques, vous trouverez le paramètre. Il est utilisé pour représenter tout type de données en rouille:
Un exemple du paramètre de type dans une fonction est un montré:
fn my_functionCe qui précède définit une fonction générique qui prend un argument t de tout type.
Vous pouvez définir plusieurs paramètres génériques en les séparant avec des virgules:
fn my_functionDans la syntaxe ci-dessus, nous définissons plusieurs paramètres génériques, t, u, v. Bien qu'il ne soit pas nécessaire, il est courant de trouver des types génériques à partir de T et à incrémenter l'alphabet.
Rouille définir la structure générique
Nous pouvons définir une structure générique comme indiqué dans la syntaxe ci-dessous:
structure structurePrenez l'exemple, structure définie ci-dessous:
struct mystructCe qui précède crée une structure générique avec deux paramètres. À l'intérieur de la structure, nous spécifions deux membres de structure de type T et U. Puisque T et U sont des types génériques, ils peuvent être de n'importe quel type.
Fonctions génériques
La même construction peut être appliquée aux fonctions et à la méthode. Si une fonction prend le type, elle est une fonction générique.
La définition de la fonction générique est comme indiqué:
fn func_namePrenez l'exemple de la définition de la fonction générique ci-dessous:
FN génériqueDans cet exemple, nous avons une fonction générique qui prend tout type et l'imprime à la console. Cependant, l'exécution du code ci-dessus provoquera une erreur.
Puisque nous utilisons un paramètre générique, nous devons implémenter le trait d'affichage ou de débogage pour l'imprimer. Nous pouvons affiner le code comme:
Utilisez STD :: FMT :: Debug;Dans ce cas, nous importons le trait de débogage et l'utilisons pour le type générique. Nous pouvons ensuite imprimer la valeur à l'aide de l'espace réservé du trait de débogage: :?
Le même cas s'applique si une fonction a besoin d'effectuer un type d'opération. Prenez la fonction d'exemple ci-dessous qui renvoie 0 si une valeur est égale et 1 si autrement.
fn même_oddSi nous appelons la fonction ci-dessus, il renverra une erreur. Nous devons mettre en œuvre le trait REM pour qu'il fonctionne comme:
Utilisez Std :: Ops :: Rem;Les traits REM et EQ vous permettent d'utiliser l'opérateur reste et d'effectuer une comparaison logique.
Conclusion
Dans cet article, nous avons exploré les principes fondamentaux du travail avec des types génériques dans la langue de la rouille. Vérifiez les documents pour en savoir plus.