Go遍历struct,map,slice


本文摘自网络,作者,侵删。


遍历结构体

如何实现遍历结构体字段? 好吧,言归正传!举个例子:
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)
   }
}

输出:

阅读剩余部分

相关阅读 >>

Golang互斥锁

Go官方文档,我们能得到哪些资料?

手撸Golang 创建型设计模式 建造者模式

Go操作mysql

Go设计模式之单例模式浅谈

聊聊dubbo-Go-proxy的discoveryservice

Golang使用kafka报错c.client.config.config.consumer.offsets.commitinterval undefined问题

Golang怎样读取json数据

Go 语言 协程和管道讲解

Golang的函数怎么写

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...