Go之旅

Go之旅-Switch

2017-03-25  本文已影响0人  frankphper

switch支持初始化语句,注意要用分号结束。后跟条件表达式,如果省略条件表达式,默认为true。不需要显式执行break语句,case执行完毕后自动中断。多个匹配条件,其中一个条件符合即可。case执行中断后,如果需要继续执行下一个case块的内容,在下一个case块结尾执行fallthrough并且可以在fallthrough前使用break语句阻止。但不继续后续case块。

package main

import (
    "fmt"
)

func main() {
    // 简单声明几个变量
    a, b, c, d := 1, 2, 3, 4
    switch x := 2; x { // switch支持初始化语句,注意要用分号结束。后跟条件表达式,如果省略条件表达式,默认为true。
    case a:
        fmt.Println("a")
        // break // 不需要显示执行break语句,case执行完毕后自动终端。
    case a, b: // 多个匹配条件,其中一个条件符合即可。
        fmt.Println("b")
        fallthrough // case执行中断后,如果需要继续执行下一个case块的内容,在下一个case块结尾执行fallthrough并且可以在fallthrough前使用break语句阻止。但不继续继续后续case块。
    case c:
        fmt.Println("c")
    case d:
        fmt.Println("d")
    case 5:
        fmt.Println("e")
    //case 5, 6: // 支持常量,但不能出现重复常量
    //  fmt.Println("f")
    default:
        fmt.Println("x") // 只有全部匹配失败后,才会执行default块。
    }
}
上一篇下一篇

猜你喜欢

热点阅读