In Go ist Iota eine spezielle Konstante, die verwendet wird, um aufgezählten Konstanten darin sequentielle Ganzzahlen zuzuweisen eine konstante Gruppe. Es kann jedoch vorkommen, dass die Zuweisung von Iota-Werten zu bestimmten Konstanten übersprungen werden muss. Hier sind drei Ansätze:
Wenn sich die Konstanten innerhalb derselben Gruppe befinden, können Sie das Iota manuell mit einer Konstante verschieben und verlassen Leere Initialisierungsausdrücke für die Konstanten, die Sie überspringen möchten:
const ( APPLE = iota ORANGE PEAR BANANA = iota + 96 // 96 is added manually to get 99 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
Dieser Ansatz erzeugt die gewünschte Ausgabe: 0, 1, 2, 99, 100. Eine Änderung der Reihenfolge oder das Einfügen neuer Konstanten vor BANANA wirkt sich jedoch auf die Werte von BANANA und nachfolgenden Konstanten aus.
Um unerwartete Wertänderungen zu vermeiden, brechen Sie die Konstantengruppe auf und beginnen Sie eine neue:
const ( APPLE = iota ORANGE PEAR ) const ( BANANA = iota + 99 // Iota resets to 0 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
Dies erzeugt ebenfalls die gleiche Ausgabe, und das Einfügen neuer Konstanten vor BANANA hat keinen Einfluss auf die Werte von BANANA und nachfolgenden Konstanten.
An Behalten Sie die einzelne Konstantengruppe bei, während Sie Werte überspringen, führen Sie eine Konstante an der Stelle ein, an der die Unterbrechung erfolgen soll, und subtrahieren Sie im nächsten Schritt ihren Wert von Iota Zeile:
const ( APPLE = iota ORANGE PEAR _BREAK BANANA = iota - _BREAK + 98 // Continues from 98 + 1 = 99 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
Dieser Ansatz stellt sicher, dass eine Änderung der Reihenfolge oder das Einfügen neuer Konstanten vor BANANA keinen Einfluss auf die Werte von BANANA und nachfolgenden Konstanten hat. Um die Offset-Berechnung zu vereinfachen, kann _BREAK mit Iota 1 initialisiert werden, sodass der Offset, der auf die nächste Konstante angewendet werden soll, der Wert von _BREAK selbst ist:
const ( APPLE = iota ORANGE PEAR _BREAK = iota + 1 BANANA = iota - _BREAK + 99 // Continues from 99 GRAPE )
Das obige ist der detaillierte Inhalt vonWie kann ich Iota-Werte überspringen, wenn ich in Go sequentielle Ganzzahlen Konstanten zuweise?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!