Heim >Backend-Entwicklung >Golang >Wie gehe ich mit Standardwerten für generische Typen in Go um?

Wie gehe ich mit Standardwerten für generische Typen in Go um?

DDD
DDDOriginal
2024-12-23 03:46:10240Durchsuche

How to Handle Default Values for Generic Types in Go?

Standardwert für generische Typen

Die Rückgabe von Null für einen beliebigen Typ ist in Go nicht zulässig. Selbst für generische Typen, bei denen T einen beliebigen Typ darstellen könnte, ist Null keine gültige Option. Typen wie Strukturen und Ganzzahlen haben keine Nulldarstellung.

Stattdessen kann der Nullwert für das spezifische Typargument, das für T verwendet wird, zurückgegeben werden. Der Nullwert variiert je nach Typ:

  • Null für Zeiger und Slices
  • Leerer String für Strings
  • 0 für Ganzzahlen und Floats

Um den Nullwert zurückzugeben, deklarieren Sie eine Variable vom Typ T und geben Sie sie zurück it:

func getZero[T any]() T {
    var result T
    return result
}

Zum Beispiel mit der getZero-Funktion:

i := getZero[int]()
fmt.Printf("%T %v\n", i, i) // Output: int 0

s := getZero[string]()
fmt.Printf("%T %q\n", s, s) // Output: string ""

p := getZero[image.Point]()
fmt.Printf("%T %v\n", p, p) // Output: image.Point (0,0)

f := getZero[*float64]()
fmt.Printf("%T %v\n", f, f) // Output: *float64 <nil>

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Standardwerten für generische Typen in Go um?. 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