流程控制

目录

常见的语言中,都有命令分支结构,我们今天依次看看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 {

}


更多文章
  • Go设计模式:Iterator
  • glusterfs 笔记
  • 用peewee代替SQLAlchemy
  • Go的slice工作机制
  • Linux系统迁移记录(从HDD到SSD)
  • Redis是如何工作的?
  • virsh自动关闭windows虚拟机
  • Golang sort源码阅读
  • 分治的思维方式
  • Debian 使用NetworkManager之后networking.service崩溃
  • httprouter源码阅读与分析
  • 《程序员的自我修养-装载、链接与库》笔记
  • Golang sync.Pool源码阅读与分析
  • MySQL操作笔记
  • Go语言解析GBK编码的xml