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
Susan SarandonOriginal
2024-12-17 19:19:14216Durchsuche

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
}

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!

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