golang中range用法

导读:本篇文章讲解 golang中range用法,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

习惯了java写法,猛地去看go语言,或多或少还是有点别扭的。哈哈,不过没关系,对比着学习还是挺好的。
在java中一提到循环遍历,脑子里立马都是for循环,其实golang中循环也是用for,不过结合了一个关键字一同使用,这个关键字就叫做range。

range可以遍历数组集合:

如下我定义了长度为7的数组,进行遍历。
定义了index和value这两个变量:
index表示索引(相当于java for循环中的i)
value表示遍历出的元素(相当于java中的arr[i])

import "fmt"

func main() {
	a :=[7]int{1,2,3,4,5,6,7}
	for index,value :=range a{
		fmt.Println(index,value)
	   }
	}

运行效果:
在这里插入图片描述
当然你不想要索引,只想要元素时可以使用废弃占位符。

import "fmt"

func main() {
	a :=[7]int{1,2,3,4,5,6,7}
	for _,value :=range a{
		fmt.Println(value)
	}
}

效果如下:
在这里插入图片描述

切片遍历

它和数组的区别就在于中括号中是空的,并且它属于一种引用。

import "fmt"

func main() {
	a :=[]int{1,2,3,4,5,6,7}
	for index,value :=range a{
		fmt.Println(index,value)
	   }
	}

运行效果:
在这里插入图片描述

map遍历:

我们在java中遍历都是根据key获取value,go中map可以这样遍历。
从运行效果中可以看出来,key value都获取到了。

import "fmt"

func main() {
a := map[string]string{"key":"嗨","value":"山石"}
	for t,b := range a{
		fmt.Println(t,b)
	   }
	}

运行效果:
在这里插入图片描述

除此之外还有一个更有趣的东西:

运行如下代码作比较:

import "fmt"

func main() {
  a :=[7]int{1,2,3,4,5,6,7}
   for  b,c :=range a{
   	if b==0 {
   		a[1],a[2]=22,33
   	}
   	a[b]=c+10
   }
   fmt.Println(a)
}

运行效果:
在这里插入图片描述

 import "fmt"

func main() {
  a :=[]int{1,2,3,4,5,6,7}
   for  b,c :=range a{
   	if b==0 {
   		a[1],a[2]=22,33
   	}
   	a[b]=c+10
   }
   fmt.Println(a)
}

运行效果:
在这里插入图片描述
一个是数组,一个是切片。一个被修改了,一个没被修改。一个被复制了所以没变,一个是引用,操作同一个发生改变。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/115815.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!