英文:
Go: check whether type of value is function
问题
你可以使用反射来检查变量的类型是否为func
。在Go语言中,可以使用reflect
包来进行反射操作。下面是一个示例代码:
package main
import (
"fmt"
"reflect"
)
func A() {}
func IsFunc(variable interface{}) bool {
return reflect.TypeOf(variable).Kind() == reflect.Func
}
func main() {
variable := A
isFunc := IsFunc(variable)
fmt.Println(isFunc) // 输出:true
}
在上面的代码中,IsFunc
函数使用reflect.TypeOf
函数获取变量的类型,并使用reflect.Kind
方法判断类型是否为func
。如果是,则返回true
,否则返回false
。在main
函数中,我们将A
函数赋值给variable
变量,并调用IsFunc
函数来检查variable
的类型是否为func
。最后,将结果打印出来,输出为true
。
英文:
How I can check that some variable in golang has type func
, like this:
func A() {}
func main() {
variable := A
isFunc := IsFunc(variable) // true or false
}
答案1
得分: 16
func IsFunc(v interface{}) bool {
return reflect.TypeOf(v).Kind() == reflect.Func
}
英文:
func IsFunc(v interface{}) bool {
return reflect.TypeOf(v).Kind() == reflect.Func
}
答案2
得分: 3
已经用以下代码解决了这个问题:
func IsFunc(fn interface{}) bool {
return reflect.TypeOf(fn).Kind() == reflect.Func
}
这段代码的作用是判断一个变量是否为函数类型。
英文:
Already solved with this:
func IsFunc(fn interface{}) bool {
return reflect.TypeOf(fn).Kind() == reflect.Func
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论