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

如何在 Go 中使用函数参数进行类型断言?

Patricia Arquette
发布: 2024-11-02 00:18:02
原创
597 人浏览过

How to Perform Type Assertion with Function Parameters in Go?

通过函数参数进行类型断言

在尝试执行类型断言时,您试图将特定类型传递到函数中。具体来说,您的目标是实现一个函数声明,使您能够断言地匹配所提供的类型,如下面的假设函数所示:

// Note: Type isn't a valid type to use in Go
func myfunction(mystring string, mytype Type) {
    ...

    someInterface := translate(mystring)
    object, ok := someInterface.(mytype)

    ...  // Do other stuff
}
登录后复制

要在 myfunction 中成功实现类型断言,您应该修改该函数接受 mytype 的 interface{} 参数的声明。以下是实现此目的的方法:

func myfunction(v interface{}, mytype interface{}) bool {
    return reflect.TypeOf(v) == reflect.TypeOf(mytype)
}
登录后复制

此方法利用 Reflect 包将 v 参数的类型与提供的 mytype 接口进行比较。它返回一个布尔值,指示类型是否匹配。

这是一个演示如何使用此函数的示例:

package main

import (
    "fmt"
    "reflect"
)

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 正确确定是否提供的值与指定的类型匹配并相应地返回布尔值。

以上是如何在 Go 中使用函数参数进行类型断言?的详细内容。更多信息请关注PHP中文网其他相关文章!

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