上一篇: [链接] ToC [链接] [链接] [链接] [链接] [链接] [链接] Go 边看边练 -《Go 学习笔记》系列(七)- 错误处理 Go 边看边练 -《Go 学习笔记》系列(八)- 数组、切片 Go 边看边练 -《Go 学习笔记》系列(九)- Map、结构体 Go 边看边练 -《Go 学习笔记》系列(十 ..

Go 边看边练 -《Go 学习笔记》系列(五)

本贴最后更新于 1360 天前,其中的信息可能已经时移世易

上一篇: Go 边看边练 -《Go 学习笔记》系列(四)


ToC


2.4.4 Switch

分支表达式可以是任意类型,不限于常量。可省略 break,默认自动终止。

x := []int{1, 2, 3}
i := 2

switch i {
	case x[1]:
		println("a")
	case 1, 3:
		println("b")
	default:
	println("c")
}

输出:

a

如需要继续下一分支,可使用 fallthrough,但不再判断条件。

x := 10

switch x {
	case 10:
		println("a")
		fallthrough
	case 0:
		println("b")
}

输出:

a
b

省略条件表达式,可当 if...else if...else 使用。

switch {
	case x[1] > 0:
		println("a")
	case x[1] < 0:
		println("b")
	default:
		println("c")
}

switch i := x[2]; { // 带初始化语句
	case i > 0:
		println("a")
	case i < 0:
		println("b")
	default:
		println("c")
}

2.4.5 Goto, Break, Continue

支持在函数内 goto 跳转。标签名区分大小写,未使用标签引发错误。

func main() {
    var i int
    for {
        fmt.Println(i)
        i++
        if i > 2 {
            goto BREAK
        }
    }

BREAK:
    fmt.Println("break")
EXIT: // Error: label EXIT defined and not used
}

配合标签,breakcontinue 可在多级嵌套循环中跳出。

附:break 可用于 forswitchselect,而 continue 仅能用于 for 循环。

x := 100

switch {
	case x >= 0:
		if x == 0 { break }
		println(x)
}

下一篇: Go 边看边练 -《Go 学习笔记》系列(六)



社区小贴士

  • 关注标签 [golang] 可以方便查看 Go 相关帖子
  • 关注作者后如有新帖将会收到通知

打赏 50 积分后可见  
50 积分 • 1 打赏
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    319 引用 • 1158 回帖 • 731 关注
  • 教程
    78 引用 • 344 回帖 • 3 关注
  • 雨痕
    14 引用 • 62 回帖 • 3 关注
1 回帖   
请输入回帖内容...
  • K  

    积分都被我 挥霍没了。就不打赏了。