Heim > Backend-Entwicklung > Golang > Wie übergebe ich Typvariablen an Funktionen für Typzusicherungen in Go?

Wie übergebe ich Typvariablen an Funktionen für Typzusicherungen in Go?

DDD
Freigeben: 2024-10-30 22:24:30
Original
287 Leute haben es durchsucht

How to Pass Type Variables to Functions for Type Assertions in Go?

Übergabe von Typvariablen an Funktionen für Typzusicherungen

Sie möchten Typzusicherungen durchführen, indem Sie einen Typ an eine Funktion übergeben. Im Wesentlichen möchten Sie Folgendes erreichen:

<code class="go">// Note that this is pseudocode, because Type isn't valid here
func myfunction(mystring string, mytype Type) {
    ...

    someInterface := translate(mystring)
    object, ok := someInterface.(mytype)

    ...  // Do other stuff
}

func main() {
    // Desired function call
    myfunction("hello world", map[string]string)
}</code>
Nach dem Login kopieren

Um Typzusicherungen in myfunction erfolgreich durchzuführen, verwenden Sie die folgende Funktionsdeklaration:

<code class="go">package main

import "reflect"

func myfunction(v interface{}, mytype interface{}) bool {
    return reflect.TypeOf(v) == reflect.TypeOf(mytype)
}

func main() {
    assertNoMatch := myfunction("hello world", map[string]string{})
    fmt.Printf("%+v\n", assertNoMatch) // false

    assertMatch := myfunction("hello world", "stringSample")
    fmt.Printf("%+v\n", assertMatch) // true
}</code>
Nach dem Login kopieren

Dieser Ansatz beinhaltet die Verwendung eines Beispiels des Typs Sie möchten übereinstimmen und sicherstellen, dass die Typen für eine erfolgreiche Typzusicherung identisch sind.

Das obige ist der detaillierte Inhalt vonWie übergebe ich Typvariablen an Funktionen für Typzusicherungen in Go?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage