GO的range如何使用

小億
112
2023-08-09 18:12:38

在Go語(yǔ)言中,range關(guān)鍵字用于迭代數(shù)組、切片、字符串、映射和通道等數(shù)據(jù)結(jié)構(gòu)。它提供了一種簡(jiǎn)潔的遍歷方式。

使用range關(guān)鍵字的基本語(yǔ)法如下:

for index, value := range data {
// 循環(huán)體
}

其中,index是索引或鍵值,value是對(duì)應(yīng)的元素值,data是要遍歷的數(shù)據(jù)。

以下是使用range的示例代碼:

  1. 遍歷數(shù)組和切片:
numbers := []int{1, 2, 3, 4, 5}
for index, value := range numbers {
fmt.Printf("Index: %d, Value: %d\n", index, value)
}
  1. 遍歷字符串:
str := "Hello, World!"
for index, value := range str {
fmt.Printf("Index: %d, Value: %c\n", index, value)
}
  1. 遍歷映射:
ages := map[string]int{
"Alice": 25,
"Bob":   30,
"Carol": 35,
}
for key, value := range ages {
fmt.Printf("Key: %s, Value: %d\n", key, value)
}
  1. 遍歷通道:
ch := make(chan int)
go func() {
for i := 0; i < 5; i++ {
ch <- i
}
close(ch)
}()
for value := range ch {
fmt.Println(value)
}

需要注意的是,如果只需要索引或值其中的一個(gè),可以使用_來(lái)忽略另一個(gè)。例如:

numbers := []int{1, 2, 3, 4, 5}
for _, value := range numbers {
fmt.Println(value)
}

以上就是使用range關(guān)鍵字進(jìn)行迭代的基本用法。根據(jù)不同的數(shù)據(jù)結(jié)構(gòu),range還有其他一些特定的用法,可以根據(jù)具體需求進(jìn)行學(xué)習(xí)和使用。

0