// 遍历 map1,读取 key 和 value for key, value :=range map1 { // 打印 key 和 value
fmt.Printf("key is: %d - value is: %f\n", key, value) }
// 遍历 map1,只读取 key for key :=range map1 { // 打印 key
fmt.Printf("key is: %d\n", key) }
// 遍历 map1,只读取 value for _, value :=range map1 { // 打印 value
fmt.Printf("value is: %f\n", value) } }
以上实例运行输出结果为:
key is:4- value is:4.000000
key is:1- value is:1.000000
key is:2- value is:2.000000
key is:3- value is:3.000000
key is:1
key is:2
key is:3
key is:4
value is:1.000000
value is:2.000000
value is:3.000000
value is:4.000000
package main import"fmt" func main(){ //这是我们使用 range 去求一个 slice 的和。使用数组跟这个很类似
nums :=[]int{2,3,4}
sum :=0 for _, num :=range nums {
sum += num }
fmt.Println("sum:", sum) //在数组上使用 range 将传入索引和值两个变量。上面那个例子我们不需要使用该元素的序号,所以我们使用空白符"_"省略了。有时侯我们确实需要知道它的索引。 fori, num :=range nums { if num ==3{
fmt.Println("index:", i) } } //range 也可以用在 map 的键值对上。
kvs :=map[string]string{"a":"apple","b":"banana"} for k, v :=range kvs {
fmt.Printf("%s -> %s\n", k, v) }
//range也可以用来枚举 Unicode 字符串。第一个参数是字符的索引,第二个是字符(Unicode的值)本身。 fori, c :=range"go"{
fmt.Println(i, c) } }