如何在 Golang 函数中遍历不同类型的数据结构?
在 golang 函数中遍历不同类型的数据结构的方法:遍历 list(数组、切片):使用 for 循环遍历数组或切片。遍历 map:使用 for 循环遍历映射。遍历 channel:使用 for 循环遍历通道。遍历自定义结构体:使用反转规则遍历自定义结构体。
如何在 Golang 函数中遍历不同类型的数据结构?
Golang 提供了丰富的内置类型和自定义数据结构。在函数中遍历这些数据结构对于提取数据、应用操作或更新其内容至关重要。
遍历 List(数组、切片)
func iterateList(list []int) { for _, value := range list { fmt.Println(value) } }
遍历 Map
func iterateMap(m map[string]int) { for key, value := range m { fmt.Println(key, value) } }
遍历 Channel
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 函数中遍历不同类型的数据结构?的详细内容,更多请关注其它相关文章!