英文:
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
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论