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)
   }
}

输出:

阅读剩余部分

相关阅读 >>

Go get命令详解

分析Go中的类型比较

Golang无法导包怎么办?

Go 中基于 ip 地址的 http 请求限流

手撸Golang 基本数据结构与算法 数组

Golang如何接收前端的参数

一文看懂web后端开发

Golang实现微信支付v3版本

Golang中.a文件是什么

Go的垃圾回收机制(gc)

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




打赏

取消

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

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

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

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

评论

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