猿问

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

我刚开始使用 Go 并尝试实现 switch 语句。据我所知在其他语言中这个语句需要“break;” 但不是在围棋中。不知何故我的代码直接跳转到默认块。当我写这个问题的时候,是 2022 年 4 月 23 日,星期六。


PS 如果你们中的任何人能向我推荐任何平台,我将不胜感激,我可以在这些平台上免费参加 Go 课程。


这是我的代码:


package main


import (

    "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.")

    }

}


UYOU
浏览 111回答 1
1回答

慕田峪7331174

time.Sunday是一个值为 0 的常量。在您的开关中,您将 1 或 2 添加到,today但该值在达到值 6(星期六)后不会循环回零。所以你的 switch 的第二个和第三个子句永远不会是真的。这做你想要的:package mainimport (    "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.")    }}
随时随地看视频慕课网APP

相关分类

Go
我要回答