Dans Go, iota est une constante spéciale utilisée pour attribuer des entiers séquentiels aux constantes énumérées dans un groupe constant. Cependant, il arrive parfois qu'il soit nécessaire de ne pas attribuer de valeurs iota à certaines constantes. Voici trois approches :
Si les constantes sont dans le même groupe, vous pouvez décaler manuellement l'iota avec une constante, en laissant expressions d'initialisation vides pour les constantes que vous souhaitez ignorer :
const ( APPLE = iota ORANGE PEAR BANANA = iota + 96 // 96 is added manually to get 99 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
Cette approche produira le résultat souhaité : 0, 1, 2, 99, 100. Cependant, changer l'ordre ou insérer de nouvelles constantes avant BANANA affectera les valeurs de BANANA et les constantes suivantes.
Pour éviter des changements de valeur inattendus, rompez le groupe constant et commencez un nouveau one :
const ( APPLE = iota ORANGE PEAR ) const ( BANANA = iota + 99 // Iota resets to 0 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
Cela produira également le même résultat, et l'insertion de nouvelles constantes avant BANANA n'affectera pas les valeurs de BANANA et les constantes suivantes.
Pour conserver le groupe de constantes uniques tout en sautant des valeurs, introduisez une constante à l'endroit où la rupture doit se produire et soustrayez sa valeur de iota dans la ligne suivante :
const ( APPLE = iota ORANGE PEAR _BREAK BANANA = iota - _BREAK + 98 // Continues from 98 + 1 = 99 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
Cette approche garantit que la modification de l'ordre ou l'insertion de nouvelles constantes avant BANANA n'affectera pas les valeurs de BANANA et les constantes suivantes. Pour simplifier le calcul du décalage, _BREAK peut être initialisé avec iota 1, donc le décalage à appliquer à la constante suivante est la valeur de _BREAK lui-même :
const ( APPLE = iota ORANGE PEAR _BREAK = iota + 1 BANANA = iota - _BREAK + 99 // Continues from 99 GRAPE )
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!