golang示例:switch

Go 复制代码
package main

import "fmt"

func main() {
	var day int
	fmt.Println("输入 1 至 7 中的一数字以获取是星期几:")
	fmt.Scan(&day)
	switch day {
	case 1:
		fmt.Println("Monday")
	case 2:
		fmt.Println("Tuesday")
	case 3:
		fmt.Println("Wednesday")
	case 4:
		fmt.Println("Thursday")
	case 5:
		fmt.Println("Friday")
	case 6:
		fmt.Println("Saturday")
	case 7:
		fmt.Println("Sunday")
	default:
		fmt.Println("输入无效,请输入 1 到 7 的数字。")
	}
}

在 Go 中,fallthrough 允许继续执行下一个 case,即使条件不满足:

Go 复制代码
package main

import "fmt"

func main() {
	var value int
	fmt.Println("输入 1 到 3 的数字:")
	fmt.Scan(&value)
	switch value {
	case 1:
		fmt.Println("This is 1")
		fallthrough
	case 2:
		fmt.Println("This is 2")
	case 3:
		fmt.Println("This is 3")
	default:
		fmt.Println("输入无效,请输入 1 到 3 的数字。")
	}
}

如果多个 case 如果逻辑相同,可以合并:

Go 复制代码
package main

import "fmt"

func main() {
	var value int
	fmt.Println("输入 1 至 5 中的一个数字:")
	fmt.Scan(&value)
	switch value {
	case 1, 2, 3:
		fmt.Println("This is either 1, 2, or 3")
	case 4:
		fmt.Println("This is 4")
	case 5:
		fmt.Println("This is 5")
	default:
		fmt.Println("Other number")
	}
}

Go 的 switch 还有一种特殊形式:

bash 复制代码
switch value := x.(type) {}

Type Switch,类型 switch,它通常配合接口使用。

Go 复制代码
package main

import "fmt"

func printType(value interface{}) {
	switch v := value.(type) {
	case int:
		fmt.Println("整数:", v)
	case string:
		fmt.Println("字符串:", v)
	case bool:
		fmt.Println("布尔值:", v)
	case float64:
		fmt.Println("浮点数:", v)
	default:
		fmt.Println("其他类型")
	}
}

func main() {
	printType(55)
	printType("Golang")
	printType(true)
	printType(3.1415)
}
相关推荐
高频因子挖掘机39 分钟前
量化项目的数据架构怎么设计?从第一份行情到可扩展的 Python 研究环境
后端·github·api
白杨尚青2 小时前
C++进阶篇(二):多态——虚函数、重写、虚函数表与三个经典坑(附完整代码仓库)
开发语言·c++·多态·虚函数·重写·动态绑定
考虑考虑8 小时前
JDK26中的Map.ofLazy
java·后端·java ee
云浪10 小时前
Go 并发实战:从零实现一个高并发安全的任务调度器
javascript·后端·go
苏三的开发日记10 小时前
Docker 启动顺序优化(CentOS / Ubuntu)
后端
高频因子挖掘机12 小时前
同一交易日出现重复 K 线:去重前先确认时间、来源和粒度
后端·github·api
feely020813 小时前
《我写了 31 个静态扫描插件,踩了 7 个「假绿」》
后端
橙子家13 小时前
参数校验类异常(Argument Exception)【C# Exception 详解系列一】
后端
掘金挖土14 小时前
前端手摸手跑路之 AI 应用开发(九)
前端·后端