Comment spécifier const tableau dans la portée globale de la Rouille?
Quand j'ai essayé d'ajouter un const tableau dans la portée globale à l'aide de ce code:
static NUMBERS: [i32] = [1, 2, 3, 4, 5];
J'ai eu l'erreur suivante:
error: mismatched types:
expected `[i32]`,
found `[i32; 5]`
(expected slice,
found array of 5 elements) [E0308]
static NUMBERS2: [i32] = [1, 2, 3, 4, 5];
^~~~~~~~~~~~~~~
La seule façon que j'ai trouvée pour faire face à ce problème est de spécifier la longueur du type:
static NUMBERS: [i32; 5] = [1, 2, 3, 4, 5];
Est-il un meilleur moyen? Il devrait être possible de créer un tableau sans manuellement le comptage de ses éléments.
- Si vous êtes à la recherche pour une discussion concernant pourquoi la Rouille a été conçu de cette façon, voir ce forum.
- Si vous voulez qu'il soit
const
, mieux écrire comme:const NUMBERS: [i32; 5] = [1, 2, 3, 4, 5];
Vous devez vous connecter pour publier un commentaire.
À l'aide de
[T; N]
est la bonne façon de le faire dans la plupart des cas; de cette manière, il n'y a pas de boxe de valeurs à tous. Il y a une autre façon, mais, ce qui est aussi pratique à la fois, même si elle est légèrement moins efficace (en raison de pointeur indirection):&'static [T]
. Dans votre cas:—