Go语言 range len(i) golang
在Go语言中,我们经常会使用range
关键字来迭代数组、切片、字符串、通道等数据结构。range
关键字的基本语法为:
for index, value := range collection {
// do something with the index and value
}
其中collection
通常是一个数组、切片、字符串或者通道,index
表示当前元素的索引,value
表示当前元素的值。但有时候我们可能只需要遍历集合的索引而不需要对应的值,这时可以使用range
关键字的len(i)
形式,其中i
为要遍历的集合的长度。
遍历数组
package main
import "fmt"
func main() {
arr := []int{1, 2, 3, 4, 5}
for i := range arr {
fmt.Printf("Index: %d\n", i)
}
}
运行结果:
Index: 0
Index: 1
Index: 2
Index: 3
Index: 4
遍历切片
package main
import "fmt"
func main() {
slice := []string{"a", "b", "c", "d", "e"}
for i := range slice {
fmt.Printf("Index: %d\n", i)
}
}
运行结果:
Index: 0
Index: 1
Index: 2
Index: 3
Index: 4
遍历字符串
package main
import "fmt"
func main() {
str := "hello"
for i := range str {
fmt.Printf("Index: %d\n", i)
}
}
运行结果:
Index: 0
Index: 1
Index: 2
Index: 3
Index: 4
遍历通道
package main
import "fmt"
func main() {
ch := make(chan int)
go func() {
ch <- 1
ch <- 2
ch <- 3
close(ch)
}()
for i := range ch {
fmt.Printf("Value: %d\n", i)
}
}
运行结果:
Value: 1
Value: 2
Value: 3
通过以上示例可以看出,使用range len(i)
形式可以方便地遍历集合的索引,而不需要使用集合的值。在实际开发中,根据具体需求选择是否使用这种方式来简化代码逻辑。