Go语言:switch 语句块

switch语句是编写一系列if-else语句的较短方法。它运行“其值等于条件表达式”的第一种情况。

  Go的switch类似于C,C ++,Java,JavaScript和PHP,但Go仅运行选定的情况,而不是随后的所有情况。实际上,Go中自动提供了每种情况下这些语言结尾处所需的break语句。另一个重要的区别是Go的switch情况不需要是常量,并且涉及的值也不必是整数。
eg:

package main

import (
    "fmt"
    "runtime"
)

func main() {
    fmt.Print("Go runs on ")
    switch os := runtime.GOOS; os {
    case "darwin":
        fmt.Println("OS X.")
    case "linux":
        fmt.Println("Linux.")
    default:
        // freebsd, openbsd,
        // plan9, windows...
        fmt.Printf("%s.\n", os)
    }
}

switch语句从上到下评估case后面的语句,当一个casetrue的时候,会停止后续case的求值。
eg:

switch i {
case 0:
case f():
}  // does not call f if i==0.

 没有带条件的switch等价于switch true, 这可以是编写长if-then-else语句的一种简洁方法。
eg:

func main() {
    t := time.Now()
    switch {
    case t.Hour() < 12:
        fmt.Println("Good morning!")
    case t.Hour() < 17:
        fmt.Println("Good afternoon.")
    default:
        fmt.Println("Good evening.")
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值