目录
一、在数组、切片上使用‘range’
二、在映射上使用range
三、在通道上使用range
Go语言中的range
关键字用于迭代数组(数组、切片、字符串)、映射(map)、通道(channel)或者在 for
循环中迭代每一个元素。range
返回两个值,第一个是索引(或键),第二个是对应的值。在数组和切片上,range
迭代返回索引和元素值;在映射上,返回键和对应的值;在通道上,返回通道中的数据。
一、在数组、切片上使用‘range’
package mainimport "fmt"func main() {// 在数组上使用rangenums := [4]int{1, 2, 3, 4}for index, value := range nums {fmt.Printf("Index: %d, Value: %d\n", index, value)}// 在切片上使用rangefruits := []string{"Apple", "Banana", "Orange"}for index, value := range fruits {fmt.Printf("Index: %d, Value: %s\n", index, value)}
}
二、在映射上使用range
package mainimport "fmt"func main() {// 在映射上使用rangeperson := map[string]int{"Alice": 25, "Bob": 30, "Charlie": 35}for key, value := range person {fmt.Printf("Key: %s, Value: %d\n", key, value)}
}
三、在通道上使用range
package mainimport "fmt"func main() {// 在通道上使用rangemessages := make(chan string, 2)messages <- "Hello"messages <- "World"close(messages)for message := range messages {fmt.Println(message)}
}
“range”可以帮助简化迭代过程,使代码更加清晰和简洁。在使用range
时,如果你只需要其中一个返回值(索引或值),可以使用下划线_
来忽略不需要的返回值。例如:
package mainimport "fmt"func main() {nums := [4]int{1, 2, 3, 4}for _, value := range nums {fmt.Println(value)}
}