Heim >Backend-Entwicklung >Golang >Wie kann ich Go-Konstanten mit Ausdrücken außerhalb der Kompilierzeit deklarieren?

Wie kann ich Go-Konstanten mit Ausdrücken außerhalb der Kompilierzeit deklarieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-08 09:36:12441Durchsuche

How Can I Declare Go Constants with Non-Compile-Time Expressions?

Const-Variablen mit Ausdrücken außerhalb der Kompilierungszeit deklarieren

In Go müssen Const-Variablen Werte darstellen, die zur Kompilierzeit ausgewertet werden können. Daher treten bei Versuchen, Konstantvariablen mithilfe von Funktionsaufrufen zu initialisieren, Fehler auf. Dies liegt daran, dass Funktionen zur Laufzeit und nicht zur Kompilierungszeit ausgeführt werden.

Die Fehlermeldung „const initializer math.Pow10(3) ist keine Konstante“ weist darauf hin, dass die Funktion math.Pow10(3) Wird zum Initialisieren von KILO verwendet und kann zur Kompilierungszeit nicht ausgewertet werden.

Problemumgehung: Verwenden Sie Literal Werte

Um const-Variablen mit Ausdrücken außerhalb der Kompilierzeit zu deklarieren, müssen Sie stattdessen Literalwerte verwenden. Sie können beispielsweise ein Ganzzahlliteral verwenden:

const Kilo = 1000

Oder ein Gleitkommaliteral:

const Kilo = 1e3

Variablen verwenden

If Sie müssen wirklich eine Funktion verwenden, um einen Wert für eine Konstante zu berechnen. Sie können ihn nicht in einer const-Variablen speichern. Deklarieren Sie sie stattdessen als reguläre Variable:

var Kilo = math.Pow10(3)

Dadurch kann der Funktionsaufruf zur Laufzeit ausgeführt werden.

Alternative Konstantendeklarationssyntax

Eine ausführliche Einführung in Go-Konstanten finden Sie im Blogbeitrag „Konstanten“. Darüber hinaus können Sie die kompakte Syntax zum Deklarieren von Zehnerpotenzen als Konstanten erkunden.

Das obige ist der detaillierte Inhalt vonWie kann ich Go-Konstanten mit Ausdrücken außerhalb der Kompilierzeit deklarieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn