我刚开始使用 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.")
}
}
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消