我想编写一个函数,该函数接受两个参数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反射的学术知识。
答案 0 :(得分:0)
无需编写这样的函数,它已经是该语言的内置功能:
i := "hello"
_, ok := i.(int) // ok is false
_, ok := i.(string) // ok is true