在go语言中switch的作用

在 Go 语言中,switch 和 case 用于根据不同的条件执行不同的代码块。以下是一个示例:

package main

import "fmt"

func main() {
    day := "Monday"
    switch day {
    case "Monday":
        fmt.Println("今天是周一")
    case "Tuesday":
        fmt.Println("今天是周二")
    case "Wednesday":
        fmt.Println("今天是周三")
    case "Thursday":
        fmt.Println("今天是周四")
    case "Friday":
        fmt.Println("今天是周五")
    case "Saturday":
        fmt.Println("今天是周六")
    case "Sunday":
        fmt.Println("今天是周日")
    default:
        fmt.Println("无效的日期")
    }
}

在上述示例中,switch 后面跟着要判断的表达式(在这个例子中是 day 变量),然后每个 case 后面跟着可能的匹配值和相应的执行代码块。如果没有任何 case 匹配,就会执行 default 中的代码块。

case 中的值可以是常量、字符串、整数等。

然后对比一下和if else的区别

在 Go 语言中,`switch` 和 `if-else` 都用于条件判断,但它们有一些区别:

1. 表达式类型: - `if-else` 中的条件表达式可以是任何布尔表达式。 - `switch` 中的表达式通常是一个值(但也可以是一个计算结果为值的表达式),然后与 `case` 中的值进行比较。

2. 比较方式: - `if-else` 按照条件的逻辑真假来决定执行的分支。 - `switch` 则是将表达式的值与每个 `case` 的值进行匹配。

3. 简洁性: - 对于一些基于值的简单条件判断,`switch` 语句可能更加简洁和直观,特别是当有多个可能的值需要判断时。

4. 穿透性: - 在 `switch` 中,默认情况下每个 `case` 执行完毕后会自动跳出 `switch` 语句,除非使用 `fallthrough` 关键字来强制执行下一个 `case` 。 - `if-else` 则不存在这种自动穿透的情况。

5. 类型灵活性: - `if-else` 在条件判断的表达式类型上更加灵活。

总的来说,选择使用 `switch` 还是 `if-else` 取决于具体的条件判断逻辑和代码的可读性、简洁性需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值