首页 > 后端开发 > Golang > 如何通过将类型变量传递到 Go 中的函数来断言类型?

如何通过将类型变量传递到 Go 中的函数来断言类型?

DDD
发布: 2024-11-01 08:37:31
原创
634 人浏览过

How can I assert a type by passing a type variable into a function in Go?

通过将类型变量传递到函数中进行类型断言

正如您所提到的,您的目标是通过将类型变量合并到功能。为了实现这一点,让我们深入研究 myfunction 的适当函数声明,以促进类型断言:

func myfunction(mystring string, mytype interface{}) bool {
    ...
}
登录后复制

在此声明中:

  • mystring 仍然是字符串参数。
  • 然而,
  • mytype 已修改为 interface{}。这表示 myfunction 将接受任何类型的值。

在 myfunction 中:

  1. 使用 Reflect.TypeOf() 来确定传递的 mystring 的类型。
  2. 利用reflect.TypeOf()来判断mytype的类型。
  3. 如果两种类型匹配,则返回true;

示例实现:

package main

import (
    "fmt"
    "reflect"
)

func myfunction(mystring string, mytype interface{}) bool {
    return reflect.TypeOf(mystring) == 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)

}
登录后复制

这里,您可以向 myfunction 提供任何类型作为第二个参数,它将评估 mystring 是否与该类型匹配类型,为类型断言提供宝贵的灵活性。

以上是如何通过将类型变量传递到 Go 中的函数来断言类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板