首页 > 后端开发 > Golang > 正文

如何在 Go 中将类型变量传递给函数进行类型断言?

DDD
发布: 2024-10-30 22:24:30
原创
208 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!