GO的控制结构和别的语言差不多,都是if-else if-else的这种用法
Go的if else支持一种新的写法,可以在if-else块里面定义一个新的局部变量。
在右边的distance的只作用于if-else块,离开了这个范围就无法使用了。
for 有多种写法,第一种写法类似于别的语言的for循环。
这里for循环输出了0-9
第二种写法展示了在for循环中,你可以不写第三段。
for后面可以不跟任何条件,那么就相当于for true。
要谨慎使用,因为如果你没办法退出的话,有可能引起cpu100%
for range循环,它可以用于遍历数据、切片和map。
遍历数组或者切片
遍历map
千万不要对迭代参数取地址
在内存里面,迭代参数都是放在一个同一个地方的,你循环开始就确定了,所以你一旦取地址,那么你拿到的就是这个地址。
所以,右边的map的键值对的值,最终都是同一个,也就是最后一个。
go也支持break和continue关键字
switch 语句和别的语言类似,基本语法形态是: switch val{ case xxx; case yyy; default; }
default分支可以有也可以没有。switch的值必须是可比较的。实践中,不能用于switch的值,编译器会报错。
注意,switch语句不需要break
switch 语句也可以没有val: switch { case condition0; case condition1; }
这种情况下,case后面跟bool表达式
从实践上来说,这种写法比较少见。正常使用这种写法,你应该尽量做到case的每一个条件是互斥的。
本文作者:Eric
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!