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
Freigeben: 2024-12-23 03:46:10
Original
277 Leute haben es durchsucht

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
}
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage