Golang中的通用函数可匹配传递的变量和类型

时间:2019-07-09 09:23:44

标签: go

我想编写一个函数,该函数接受两个参数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

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

例如:

<>

我无法在所有 switch (i) { case **int n when n>0 && n<5**: DoSth(); break; case int n when n>=5: .... } 部分中填充代码以实现所需的行为。

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

1 个答案:

答案 0 :(得分:0)

无需编写这样的函数,它已经是该语言的内置功能:

i := "hello"

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