为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的代码直接跳转到默认值?Go 中的开关盒

为什么我的代码直接跳转到默认值?Go 中的开关盒

Go
UYOU 2022-12-05 16:50:36
我刚开始使用 Go 并尝试实现 switch 语句。据我所知在其他语言中这个语句需要“break;” 但不是在围棋中。不知何故我的代码直接跳转到默认块。当我写这个问题的时候,是 2022 年 4 月 23 日,星期六。PS 如果你们中的任何人能向我推荐任何平台,我将不胜感激,我可以在这些平台上免费参加 Go 课程。这是我的代码:package mainimport (    "fmt"    "time")func main() {    fmt.Println("when is Sunday?")    today := time.Now().Weekday()    switch time.Sunday {    case today + 0:        fmt.Println("Today.")    case today + 1:        fmt.Println("Tommorow.")    case today + 2:        fmt.Println("In 2 days.")    default:        fmt.Println("Too far away.")    }}
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

time.Sunday是一个值为 0 的常量。在您的开关中,您将 1 或 2 添加到,today但该值在达到值 6(星期六)后不会循环回零。

所以你的 switch 的第二个和第三个子句永远不会是真的。

这做你想要的:

package main


import (

    "fmt"

    "time"

)


func main() {

    fmt.Println("when is Sunday?")

    today := time.Now().Weekday()


    switch today {

    case time.Sunday:

        fmt.Println("Today.")


    case time.Saturday:

        fmt.Println("Tommorow.")


    case time.Friday:

        fmt.Println("In 2 days.")


    default:

        fmt.Println("Too far away.")

    }

}


查看完整回答
反对 回复 2022-12-05
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号