golang-学习笔记-控制结构
Contents
在写过很多go代码之后,感觉自己并没有完全掌握go语言,还有很多知识盲区,所以有了这个go学习笔记系列,本系列是作者跟着电子书重新复习go语言相关内容的笔记
if-else 结构
|
|
|
|
switch 结构
|
|
不需要特别使用 break 语句来表示结束。
如果在执行完每个分支的代码后,还希望继续执行后续分支的代码,可以使用 fallthrough 关键字来达到目的。
当代码块只有一行时,可以直接放置在 case 语句之后
for 结构
基于计数器的迭代
|
|
基于条件判断的迭代
|
|
无限循环
|
|
for-range 结构
|
|
coll会进行值拷贝然后遍历拷贝数组的索引ix和值val,所以下面的代码会输出不符合常理的结果
|
|
一种解决办法是对于数组使用切片重组来避免数组拷贝
|
|
val 始终为集合中对应索引的值拷贝,如果 val 为指针,则会产生指针的拷贝,依旧可以修改集合中的原值
一个字符串是 Unicode 编码的字符(或称之为 rune)(4字节)集合,字符串中对存储进行了优化常用英文字符使用 1 个字节表示,而汉字(译者注:严格来说,“Chinese: 日本語”的Chinese应该是Japanese)使用 3 个字符表示。因此您也可以用它迭代字符串,迭代的char为4字节:
|
|
for range结构可以选择从左往右要接收几个值,甚至可以不接受值,但是如果要只接收后面的值,那么必须用_
忽略前面的值
Break 与 continue
break跳出最近的循环,另外该指令能跳出switch或select代码块
continue跳过剩余的循环体,不是无条件执行下一次循环,执行之前依旧需要满足循环的判断条件
标签与 goto
某一行第一个以冒号(:)结尾的单词
|
|
特别注意 使用标签和 goto 语句是不被鼓励的