首頁 > 後端開發 > Golang > 主體

如何透過將類型變數傳遞到 Go 中的函數來斷言類型?

DDD
發布: 2024-11-01 08:37:31
原創
521 人瀏覽過

How can I assert a type by passing a type variable into a function in Go?

透過將類型變數傳遞到函數中進行類型斷言

正如您所提到的,您的目標是透過將類型變數合併到功能。為了實現這一點,讓我們深入研究 myfunction 的適當函數聲明,以促進類型斷言:

func myfunction(mystring string, mytype interface{}) bool {
    ...
}
登入後複製

在此聲明中:

  • mystring 仍然是字串參數。
  • 然而,
  • mytype 已修改為 interface{}。這表示 myfunction 將接受任何類型的值。

在 myfunction 中:

  1. 使用 Reflect.TypeOf() 來決定傳遞的 mystring 的類型。
  2. 利用reflect.TypeOf()來判斷mytype的類型。
  3. 如果兩種類型匹配,則返回true;

範例實作:

package main

import (
    "fmt"
    "reflect"
)

func myfunction(mystring string, mytype interface{}) bool {
    return reflect.TypeOf(mystring) == 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)

}
登入後複製

這裡,您可以提供任何類型給myfunction 為第二個參數,它將評估mystring 是否與該類型匹配類型,為類型斷言提供寶貴的靈活性。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!