將類型變數傳遞給函數以進行類型斷言
您希望透過將類型傳遞給函數來執行類型斷言。本質上,您的目標是實現以下目標:
<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中文網其他相關文章!