Go语言每天必学之switch语句
作者:lijiao 时间:2024-04-26 17:33:59
Go 语言 switch 语句
switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。。
switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break
语法
Go 编程语言中 switch 语句的语法如下:
switch var1 {
case val1:
...
case val2:
...
default:
...
}
变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值。类型不被局限于常量或整数,但必须是相同的类型;或者最终结果为相同类型的表达式。
您可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:case val1, val2, val3。
流程图:
实例
package main
import "fmt"
func main() {
/* 定义局部变量 */
var grade string = "B"
var marks int = 90
switch marks {
case 90: grade = "A"
case 80: grade = "B"
case 50,60,70 : grade = "C"
default: grade = "D"
}
switch {
case grade == "A" :
fmt.Printf("优秀!\n" )
case grade == "B", grade == "C" :
fmt.Printf("良好\n" )
case grade == "D" :
fmt.Printf("及格\n" )
case grade == "F":
fmt.Printf("不及格\n" )
default:
fmt.Printf("差\n" );
}
fmt.Printf("你的等级是 %s\n", grade );
}
以上代码执行结果为:
优秀!
你的等级是 A
Type Switch
switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际存储的变量类型。
Type Switch 语法格式如下:
switch x.(type){
case type:
statement(s);
case type:
statement(s);
/* 你可以定义任意个数的case */
default: /* 可选 */
statement(s);
}
实例
package main
import "fmt"
func main() {
var x interface{}
switch i := x.(type) {
case nil:
fmt.Printf(" x 的类型 :%T",i)
case int:
fmt.Printf("x 是 int 型")
case float64:
fmt.Printf("x 是 float64 型")
case func(int) float64:
fmt.Printf("x 是 func(int) 型")
case bool, string:
fmt.Printf("x 是 bool 或 string 型" )
default:
fmt.Printf("未知型")
}
}
以上代码执行结果为:
x 的类型 :<nil>
来源:http://www.runoob.com/go/go-switch-statement.html
标签:Go,switch
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
学以致用驳ASP低能论
2007-08-22 14:47:00
使用python遍历指定城市的一周气温
2022-01-01 18:25:26
AngularJS框架的ng-app指令与自动加载实现方法分析
2024-05-02 17:40:17
Python-接口开发入门解析
2022-05-24 09:19:43
![](https://img.aspxhome.com/file/2023/8/107538_0s.png)
PHP常量及变量区别原理详解
2023-09-05 06:35:45
![](https://img.aspxhome.com/file/2023/2/55612_0s.png)
Django1.7+python 2.78+pycharm配置mysql数据库教程
2023-11-04 14:43:28
javascript 动态插入技术
2009-12-14 20:50:00
pandas如何处理缺失值
2021-04-10 12:42:35
pytorch DataLoader的num_workers参数与设置大小详解
2022-12-22 12:15:58
asp如何调用DLL来加快服务器的执行速度?
2009-11-15 20:07:00
vue移动端实现手指滑动效果
2023-07-02 16:48:49
![](https://img.aspxhome.com/file/2023/9/139789_0s.jpg)
引用其它js时如何同时处理多个window.onload事件
2024-04-16 10:31:47
SQL开窗函数的具体实现详解
2024-01-26 12:16:37
![](https://img.aspxhome.com/file/2023/6/86876_0s.png)
SQL Server如何保证可空字段中非空值唯一
2024-01-17 07:19:03
教你制作IBM LOGO的方法
2007-10-23 13:34:00
![](https://img.aspxhome.com/file/UploadPic/200710/23/20071023133740347s.png)
python使用pyaudio录音和格式转化方式
2023-11-07 19:30:03
ansible作为python模块库使用的方法实例
2022-07-15 08:01:02
Python3读取和写入excel表格数据的示例代码
2022-01-21 10:33:55
![](https://img.aspxhome.com/file/2023/4/114514_0s.png)
Django rest framework基本介绍与代码示例
2023-12-20 13:37:57
正则表达式30分钟入门教程
2007-08-27 10:38:00
![](https://img.aspxhome.com/file/UploadPic/20078/27/200782711216598s.jpg)