登录
首页 >  Golang >  Go问答

能否有人解释一下这个结果?

来源:stackoverflow

时间:2024-03-08 14:48:26 353浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《能否有人解释一下这个结果?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

有一个关于go反射的demo:

func main() {
        test := []string{"hello"}
        V := reflect.ValueOf(test)
        if reflect.TypeOf(V).Kind() == reflect.Struct{
            fmt.Printf("it's a struct")
        } else {
            fmt.Printf("other")
        }
    }

输出是 "it's a struct"


解决方案


vreflect.ValueOf()返回的值,所以它的类型是reflect.Value,它是一个struct,所以reflect.typeof(v).kind()reflect.struct。这并没有什么令人惊讶的。

来自 reflect 包:

type value struct {
    // contains filtered or unexported fields
}

如果您传递 test 本身,其类型将为 reflect.slice

if reflect.typeof(test).kind() == reflect.slice {
    fmt.printf("it's a slice")
} else {
    fmt.printf("other")
}

这将打印(在 Go Playground 上尝试):

it's a slice

理论要掌握,实操不能落!以上关于《能否有人解释一下这个结果?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>