流程控制

目录

常见的语言中,都有命令分支结构,我们今天依次看看Go语言的流程控制。

if…else…

这是最常见的流程控制,Go语言的 if...else... 与其他语言并没有什么太大的不同,唯一需要注意的地方是它不需要括号:

if x > 1 {
    fmt.Println("x > 1")
}

switch…case…

Go语言中的 switch...case... 与C语言非常像,不同的地方在于,每一条case语句默认是带了 break 的,也就是说,当前的 case 执行完成之后,整个 switch 就会退出:

switch x {
    case x == 1:
        fmt.Println("x == 1")
    case x == 2:
        fmt.Println("x == 2")
    default:
        fmt.Println("x != 1 && x != 2")
}

default 分支就是用于所有 case 都没有匹配时执行的,我们可以不提供 default 分支。

for

Go语言的 for 循环也是循规蹈矩,唯一需要注意的地方在于没有括号:

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

注意,Go语言里没有while,也没有 do…while…

continue和break

continuebreak 就是用于控制 for 循环的,例如:

for {
    if x == 1 {
        break
    }

    if x == 2 {
        continue
    }
}

goto

一般我们不用 goto。Go语言里的 goto 与C语言的一致,我们需要提供一个标签,所以我们也可以用 goto 写一个死循环:

loop:
    goto loop

它与下面这样是等效的:

for {

}


更多文章
  • 提取kindle笔记
  • 一个Golang gRPC握手错误的坑
  • Golang(Go语言)爬虫框架colly简明教程及源码阅读与分析
  • 选择合适的技术栈
  • Golang的template(模板引擎)简明教程
  • 毕业三年,一路走来
  • 代码的坏味道
  • 消息分帧(字符串设计或协议设计)的两种形式
  • C, Go, Python的错误处理和异常机制杂谈
  • 好的命名是最好的文档
  • 读《系统之美:决策者的系统思考》
  • Linux高分屏支持
  • GCC默认的头文件搜索路径
  • 读《远见-如何规划职业生涯3大阶段》
  • 后端工程师学前端(五): SASS