1.3.2 迭代处理数组
Go语言可通过关键字
range,配合关键字for来迭代数组或切片里的每一个元素,迭代切片时,关键字range会返回两个值,第一个值是当前迭代到的索引位置,第二个值是该位置对应元素值的一份副本,示例:// 创建一个整型切片,并赋值 array := []int{1, 6, 8} // 迭代每一个元素,并打印值 for i, v := range array { fmt.Printf("index: %d value: %d element-address:%X \n", i, v, &array[k]) }结果:
index: 0 value: 1 element-address:C000018078 index: 1 value: 6 element-address:C000018080 index: 2 value: 8 element-address:C000018088element-address值会变化
range函数不仅仅可以遍历切片,还可以遍历数组、字符串、map或通道等,示例:func t2() { // 创建一个整型切片,并赋值 array := []int{1, 6, 8} // 迭代每一个元素,并打印值 for i, v := range array { fmt.Printf("index: %d value: %d element-address:%X \n", i, v, &array[i]) } fmt.Println("\n使用匿名变量(下划线)来忽略索引值:") // 使用空白标识符(下划线)来忽略索引值 for _, v := range array { fmt.Printf("value: %d \n", v) } fmt.Println("\n使用for循环对切片进行迭代:") // 使用传统的for循环对切片进行迭代 for i := 0; i < len(array); i++ { fmt.Printf("value: %d \n", array[i]) } }
Last updated