将类型变量传递给函数以进行类型断言
您希望通过将类型传递给函数来执行类型断言。本质上,您的目标是实现以下目标:
<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中文网其他相关文章!