本文摘自网络,作者,侵删。
遍历结构体
如何实现遍历结构体字段? 好吧,言归正传!举个例子:
demo1:
package main import ( "fmt" "reflect") type Student struct { name string age int} func main() { v := reflect.ValueOf(Student{"乔峰", 29}) count := v.NumField() for i := 0; i < count; i++ { f := v.Field(i) //字段值 switch f.Kind() { case reflect.String: fmt.Println(f.String()) case reflect.Int: fmt.Println(f.Int()) } } }
再举给栗子:
package main import ( "fmt" "reflect") type LanType struct { s1, s2, s3 string}var language interface{} = LanType{"Php", "Go", "Python3"} func main() { value := reflect.ValueOf(language) for i := 0; i < value.NumField(); i++ { fmt.Printf("字段索引 %d: %v\n", i, value.Field(i)) } }
输出:
BASIC
字段索引 0: Php 字段索引 1: Go字段索引 2: Python3
遍历切片
使用 for range遍历:
package main import ( "fmt") func main() { language := []string{"Php", "Go", "Python3"} for k, val := range language { fmt.Printf("切片索引 %d is :%s\n", k, val) } }
输出:
相关阅读 >>
聊聊dubbo-Go-proxy的discoveryservice
Golang使用kafka报错c.client.config.config.consumer.offsets.commitinterval undefined问题
更多相关阅读请进入《Go》频道 >>

Go语言101
一个与时俱进的Go编程知识库。