"package main import ( 'fmt' 'reflect' ) type User struct { Id int Name string //addr string } func main(){ u := User{Id:1001, Name:'xxx'/*, addr:'xxx'*/} t := r .."

Go 语言笔记:struct 结构遍历

package main 
import ( "fmt"  "reflect" )
type User struct { 
    Id int 
    Name string 
    //addr string 
} 
func main(){ 
    u := User{Id:1001, Name:"xxx"/*, addr:"xxx"*/} 
    t := reflect.TypeOf(u) 
    v := reflect.ValueOf(u)
    for k := 0; k < t.NumFiled(); k++ {
        fmt.Printf("%s -- %v \n", t.Filed(k).Name, v.Field(k).Interface())
    } 
}

注:当结构体中含有非导出字段时,v.Field(k).Interface() 会 panic

  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    271 引用 • 1100 回帖 • 759 关注
回帖   
请输入回帖内容...