透過將型別傳遞給函數進行型別斷言
在 Go 中,型別斷言涉及驗證介面值是否實作特定型別。若要透過函數實現此目的,您可以使用 Reflect 套件並提供預期資料類型的範例。
函數宣告
您應該使用的函數宣告是:
<code class="go">func myfunction(v interface{}, mytype interface{}) bool</code>
其中:
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中文網其他相關文章!