Heim > Backend-Entwicklung > Golang > Wie kann ich die Präsenz vor Ort bei Go Generics garantieren?

Wie kann ich die Präsenz vor Ort bei Go Generics garantieren?

Susan Sarandon
Freigeben: 2024-12-17 19:19:14
Original
187 Leute haben es durchsucht

How Can I Guarantee Field Presence in Go Generics?

Sicherstellen der Feldpräsenz in generischen Funktionen

In Go kann das Erstellen generischer Funktionen, die Werte mit bestimmten Feldern akzeptieren, eine Herausforderung sein. Mithilfe von Generika können wir versuchen, solche Einschränkungen durchzusetzen, wie im folgenden Beispiel gezeigt:

package main

import (
    "fmt"
)

func Print[T IDer](s T) {
    fmt.Print(s.ID)
}

func main() {
    Print(Person{3, "Test"})
}

type IDer interface {
    ~struct{ ID int }
}

type Person struct {
    ID   int
    Name string
}

type Store struct {
    ID     int
    Domain string
}
Nach dem Login kopieren

Dieser Ansatz schlägt jedoch fehl, da die generische Implementierung von Go 1.18 keine Unterstützung für Strukturtypen bietet. Daher können wir diesen Mechanismus nicht nutzen, um das Vorhandensein bestimmter Felder in übergebenen Werten zu garantieren.

Daher ist es in Go notwendig, Methoden innerhalb von Schnittstellen zu definieren, um auf gemeinsame Felder zuzugreifen, wenn es um Gewerkschaften geht oder um Felder sicherzustellen Präsenz in generischen Funktionen.

Das obige ist der detaillierte Inhalt vonWie kann ich die Präsenz vor Ort bei Go Generics garantieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage