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

如何在 Go 中將類型變數傳遞給函數進行類型斷言?

DDD
DDD原創
2024-10-30 22:24:30192瀏覽

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

將類型變數傳遞給函數以進行類型斷言

您希望透過將類型傳遞給函數來執行類型斷言。本質上,您的目標是實現以下目標:

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

要在myfunction 中成功執行類型斷言,請使用以下函數聲明:

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

此方法涉及使用類型的範例您想要匹配,確保類型相同才能成功進行類型斷言。

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

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