在 golang 函数中遍历不同类型的数据结构的方法:遍历 list(数组、切片):使用 for 循环遍历数组或切片。遍历 map:使用 for 循环遍历映射。遍历 channel:使用 for 循环遍历通道。遍历自定义结构体:使用反转规则遍历自定义结构体。
如何在 Golang 函数中遍历不同类型的数据结构?
Golang 提供了丰富的内置类型和自定义数据结构。在函数中遍历这些数据结构对于提取数据、应用操作或更新其内容至关重要。
遍历 List(数组、切片)
立即学习“go语言免费学习笔记(深入)”;
使用 for 循环遍历数组或切片:
func iterateList(list []int) { for _, value := range list { fmt.Println(value) } }
遍历 Map
用 for 循环遍历映射:
func iterateMap(m map[string]int) { for key, value := range m { fmt.Println(key, value) } }
遍历 Channel
用 for 循环遍历通道:
func iterateChannel(ch <-chan int) { for { select { case value := <-ch: fmt.Println(value) default: return // 通道为空,退出循环 } } }
遍历自定义结构体
使用反转规则遍历自定义结构体:
type Person struct { name string age int } func iterateStruct(p Person) { for key, value := range reflect.ValueOf(p).Elem().FieldByName("person").Interface().(map[string]interface{}) { fmt.Println(key, value) } }
实战案例:读取 JSON 数据
package main import ( "encoding/json" "fmt" "io/ioutil" "log" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { data, err := ioutil.ReadFile("data.json") if err != nil { log.Fatal(err) } people := []Person{} err = json.Unmarshal(data, &people) if err != nil { log.Fatal(err) } for _, person := range people { fmt.Println(person.Name, person.Age) } }
遵循这些步骤,你可以在 Golang 函数中轻松遍历各种类型的数据结构,解锁更多数据操作和处理的可能性。
以上就是如何在 Golang 函数中遍历不同类型的数据结构?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com