首页 > 解决方案 > Golang 中用于匹配传递的变量和类型的通用函数

问题描述

我想编写一个函数,它接受两个参数interface{}和一个类型,true如果接口是传递的类型,则返回,否则返回false

我是反思的初学者,我看到的主要挑战是如何将类型作为函数参数。

例如:

func checkType(val interface{}, t <??>){
   if reflect.Typeof(val) == t {
      return true
   }else{
      return false
   }
}

checkType("hello",<int type>) // returns false
checkType("hello",<string type>) // returns true

我无法在所有<>部分中填写代码以实现所需的行为。

编辑:得到关于安全类型转换运算符的查询以及我的问题的意图。虽然建议的方法有助于实现类型转换,但问题主要是为了增强关于 Go 反射的学术知识。

标签: go

解决方案


不需要写这样的函数,它已经是语言的内置特性了:

i := "hello"

_, ok := i.(int)    // ok is false
_, ok := i.(string) // ok is true

推荐阅读