Regroupement de constantes en langage Go
Ce qui est préféré (ou à droite) de regrouper un grand nombre de constantes liées dans le langage Go? Par exemple, C# et C++, les deux ont enum
pour cela.
source d'informationauteur Darius Kucinskas
Vous devez vous connecter pour publier un commentaire.
const
?Il y a deux options, en fonction de la façon dont les constantes seront utilisés.
La première est de créer un nouveau type int, et déclarez vos variables à l'aide de ce nouveau type, comme par exemple:
Foo
etBar
de typeMyFlag
. Si vous voulez extraire la valeur int arrière à partir d'unMyFlag
vous avez besoin d'un type encore de la contrainte:Si ce n'est pas pratique, l'utilisation newacct la suggestion d'un nu const bloc:
Foo
etBar
sont parfaits constantes qui peuvent être affectés à des int, float, etc.Ce qui est couvert dans Efficace Aller dans la section Constantes. Voir aussi la discussion de la
iota
mot-clé pour l'auto-affectation de valeurs comme le C/C++.Cela dépend de ce que vous voulez atteindre par ce groupement. Allez permet de les regrouper avec les éléments suivants accolades syntaxe:
Qui ajoute juste visuel agréable bloc pour un programmeur (éditeurs permettent de le plier), mais ne fait rien pour un compilateur (vous ne pouvez pas spécifier un nom pour un bloc).
La seule chose qui dépend de ce bloc est la iota déclaration de constante en Aller (ce qui est assez pratique pour les énumérations). Il permet de créer des auto incrémente facilement (plus que de l'auto incrément: plus d'infos dans le lien).
Par exemple ceci:
permettra de créer des constantes
c0 = 3
(3 + 5 * 0),c1 = 8
(3 + 5 * 1) etc2 = 13
(3 + 5 * 2).Mon plus proche approche de la enums est de déclarer des constantes comme un type. Au moins vous avez un certain type de sécurité, qui est le principal avantage d'un type enum.