Maison > développement back-end > Golang > Comment puis-je ignorer les valeurs Iota lors de l'attribution d'entiers séquentiels à des constantes dans Go ?

Comment puis-je ignorer les valeurs Iota lors de l'attribution d'entiers séquentiels à des constantes dans Go ?

DDD
Libérer: 2024-11-22 05:54:14
original
935 Les gens l'ont consulté

How Can I Skip Iota Values When Assigning Sequential Integers to Constants in Go?

Saut des valeurs constantes à l'aide d'Iota dans Go

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 :

Groupe unique, décalage manuel

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)
Copier après la connexion

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.

Rupture du groupe de constantes

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)
Copier après la connexion

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.

Groupe unique, automatique Offset

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)
Copier après la connexion

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
)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal