go语言循环(r语言for循环)

了解Go语言循环

Go语言是一门非常强大的编程语言,其中控制流程的重点之一就是循环。在Go中,循环有三种类型:for循环、range循环和select循环。在这篇文章中,我们将一一介绍这些循环,以及它们在Go语言中的应用。

For循环

For循环是Go语言中最基本的循环结构,它是执行一系列语句直到条件不成立的基本形式。在Go中,for循环有两种形式:for循环和range循环。

这是for循环结构的示例:

```
for 初始化语句; 条件语句; 修饰语句 {
// 循环执行的语句
}
```

这是一个比较简单的例子。for循环将从0一直循环到9,输出每个数字:

```
for i := 0; i < 10; i ++ { fmt.Println(i)}```

Go语言的for循环也支持continue和break语句。continue语句可以退出当前循环,进入到下一次循环中。而break语句则可以直接退出循环,不再进行后续的循环。

Range循环

Range循环是一种遍历数组、切片、通道等数据结构的循环形式。在Go中,range循环可以支持数组、切片、字典、通道以及字符串。它的基本语法简单明了:

```
for k, v := range arr {
// 循环执行的代码块
}
```

在range循环中,k代表数组或slice中的下标,v则代表对应下标的值。如果遍历的数据结构是字典或通道,那么k则代表字典key的值,v则代表key对应的值。

下面是一个为切片中所有元素加和的简单例子:

```
sums := []int{1,2,3,4,5}
sum := 0
for _, v := range sums {
sum += v
}
fmt.Println(sum) //输出结果为15
```

Select循环

Select循环是Go中的一种非常特殊的循环结构,它只能用于通道操作。在Go中,通道是一种非常重要的数据结构,用于在Go协程之间进行数据传递。Select循环允许在多个通道之间进行选择操作,只要有一个通道可以被操作,就会执行对应的分支。

它的基本语法如下:

```
select {
case <- channel1: //读通道针对的代码块case channel2 <- 1: //写通道针对的代码块default: //default语句块}```

在Select循环中,每个case语句对应一个操作。当选择操作可以执行时,Select会立即执行对应的case语句。如果存在多个可以操作的通道,那么Select会随机地进行选择。

下面是一个Select循环的简单例子:

```
func doSelect() {
c1 := make(chan int, 1)
c2 := make(chan int, 1)

go func() {
time.Sleep(time.Second * 1)
c1 <- 1 }() go func() { time.Sleep(time.Second * 2) c2 <- 2 }() for i := 0; i < 2; i++ { select { case msg1 := <-c1: fmt.Println("channel 1 received :", msg1) case msg2 := <-c2: fmt.Println("channel 2 received :", msg2) } }}```

在这个例子中,我们创建了两个通道,并在每个通道之间添加了一个不同的Sleep函数。最后,在循环中选择通道操作,等待第一个通道的操作完成之后,再等待第二个通道的操作。最终,我们可以看到控制台输出channel 1 received:1和channel 2 received:2。

总结

Go语言是一门非常易学的编程语言,并且拥有优美的语法结构。在这篇文章中,我们介绍了Go语言的三种循环类型。for循环用于循环一定次数的代码块,而range循环用于遍历数组、切片、字典、通道以及字符串,select循环则用于在多个通道之间进行选择操作。在实际开发中,选择最合适的循环类型可以大大提高我们的编码效率。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/golang-kh.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年5月2日 上午2:09
下一篇 2023年5月2日 上午2:10

猜你喜欢