Skip to content

遍历

  • 对于数组,切片,字符串,map,通道遍历元素。

for遍历

  • 通过 len() 函数获取长度,然后进行循环遍历
go
// 数组遍历
arr := [5]int{1, 2, 3}
for i := 0; i < len(arr); i++ {
    fmt.Println("arr:", arr[i])
}

// 切片遍历
slice := []int{1, 2, 3}
for i := 0; i < len(slice); i++ {
    fmt.Println("slice:", slice[i])
}

// 字符串遍历
str := "hello"
for i := 0; i < len(str); i++ {
    fmt.Println("string", string(str[i]))
}

// chanel遍历
ch := make(chan int, 2)
ch <- 1
ch <- 2
close(ch)
for i := 0; i < len(ch); i++ {
    fmt.Println("chanel", i)
}

// map 遍历
m := map[int]string{0: "a", 1: "b", 2: "c"}
for i := 0; i < len(m); i++ {
    fmt.Println(m[i])
}

range 遍历

  • range 遍历,range 会返回两个值,第一个是索引,第二个是值。
  • _ 表示忽略返回值
go
// 数组遍历
arr := [5]int{1, 2, 3}
for _, v := range arr {
    fmt.Println("arr range:", v)
}

// 切片遍历
slice := []int{1, 2, 3}
for _, v := range slice {
    fmt.Println("slice range:", v)
}

// 字符串遍历
str := "hello"
for _, v := range str {
    fmt.Println("string range:", string(v))
}

// chanel遍历
ch := make(chan int, 2)
ch <- 1
ch <- 2
close(ch)
for i := range ch {
    fmt.Println("chanel range:", i)
}

// map 遍历
m := map[int]string{0: "a", 1: "b", 2: "c"}
for k, v := range m {
    fmt.Println("map range:", k, v)
}