Heim >Backend-Entwicklung >Golang >Wie können Sie in Go eine Typzusicherung durchführen, indem Sie einen Typ an eine Funktion übergeben?

Wie können Sie in Go eine Typzusicherung durchführen, indem Sie einen Typ an eine Funktion übergeben?

Susan Sarandon
Susan SarandonOriginal
2024-10-30 19:57:30662Durchsuche

How can you perform Type Assertion in Go by passing in a type to a function?

Typzusicherung durch Übergabe von Typ an Funktion

In Go beinhalten Typzusicherungen die Überprüfung, ob ein Schnittstellenwert einen bestimmten Typ implementiert. Um dies über eine Funktion zu erreichen, können Sie das Reflect-Paket verwenden und ein Beispiel des erwarteten Datentyps bereitstellen.

Funktionsdeklaration

Die Funktionsdeklaration, die Sie verwenden sollten, ist :

<code class="go">func myfunction(v interface{}, mytype interface{}) bool</code>

Wobei:

  • v ist die Variable, die den Wert enthält, den Sie überprüfen möchten.
  • mytype ist ein Beispiel des erwarteten Datentyps.

Verwendung

In der Hauptfunktion können Sie myfunction wie folgt aufrufen:

<code class="go">assertMatch := myfunction("hello world", "stringSample")</code>

Hier ist „stringSample“ ein Beispiel vom Typ String. Wenn der v-Wert eine Zeichenfolge ist, gibt die Funktion „true“ zurück. Andernfalls wird false zurückgegeben.

Beispiel

Hier ist ein Beispiel:

<code class="go">package main

import (
    "fmt"
    "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)

    assertMatch := myfunction("hello world", "stringSample")

    fmt.Printf("%+v\n", assertMatch)

}</code>

Ausgabe:

false
true

Das obige ist der detaillierte Inhalt vonWie können Sie in Go eine Typzusicherung durchführen, indem Sie einen Typ an eine Funktion übergeben?. 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