GoLang之语言范围(Range)解读
作者:星宇星静
Go语言中range关键字用于迭代数组、切片、映射和通道,并详细介绍其用法及注意事项;range返回两个值分别对应索引和元素值或键和值;灵活使用下标忽略不需要的返回值可简化迭代过程
Go语言中的range关键字用于迭代数组(数组、切片、字符串)、映射(map)、通道(channel)或者在 for 循环中迭代每一个元素。
range返回两个值,第一个是索引(或键),第二个是对应的值。
- 在数组和切片上,
range迭代返回索引和元素值; - 在映射上,返回键和对应的值;
- 在通道上,返回通道中的数据。
一、在数组、切片上使用‘range’
package main
import "fmt"
func main() {
// 在数组上使用range
nums := [4]int{1, 2, 3, 4}
for index, value := range nums {
fmt.Printf("Index: %d, Value: %d\n", index, value)
}
// 在切片上使用range
fruits := []string{"Apple", "Banana", "Orange"}
for index, value := range fruits {
fmt.Printf("Index: %d, Value: %s\n", index, value)
}
}
二、在映射上使用range
package main
import "fmt"
func main() {
// 在映射上使用range
person := 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 main
import "fmt"
func main() {
// 在通道上使用range
messages := make(chan string, 2)
messages <- "Hello"
messages <- "World"
close(messages)
for message := range messages {
fmt.Println(message)
}
}
“range”可以帮助简化迭代过程,使代码更加清晰和简洁。
在使用range时,如果你只需要其中一个返回值(索引或值),可以使用下划线_来忽略不需要的返回值。
例如:
package main
import "fmt"
func main() {
nums := [4]int{1, 2, 3, 4}
for _, value := range nums {
fmt.Println(value)
}
}
四、总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
