首頁  >  文章  >  後端開發  >  如何透過將類型傳遞給函數來在 Go 中執行類型斷言?

如何透過將類型傳遞給函數來在 Go 中執行類型斷言?

Susan Sarandon
Susan Sarandon原創
2024-10-30 19:57:30575瀏覽

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

透過將型別傳遞給函數進行型別斷言

在 Go 中,型別斷言涉及驗證介面值是否實作特定型別。若要透過函數實現此目的,您可以使用 Reflect 套件並提供預期資料類型的範例。

函數宣告

您應該使用的函數宣告是:

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

其中:

  • 其中:
v 是儲存要檢查的值的變數。

mytype 是預期資料類型的範例。

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

在main 函數中,你可以像這樣呼叫myfunction:

這裡,「stringSample」是一個範例的字串類型。如果 v 值是字串,則函數將傳回 true。否則,它將傳回 false。

範例
<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>

這裡有一個例子:
false
true
輸出:

以上是如何透過將類型傳遞給函數來在 Go 中執行類型斷言?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn