Go中的条件语句Switch示例详解


Posted in Golang onAugust 23, 2021

Switch简介

Go的switch的基本功能和C、Java类似:

  • switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。
  • 匹配项后面也不需要再加 break。

特点:

switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case

重点介绍Go当中的Switch的两个特别点:**

表达式判断为true还需要执行后面的 case,可以使用 fallthrough

type-switch 来判断某个 interface 变量中实际存储的变量类型

fallthrough

特点:

强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。

示例:

package main
​
import "fmt"
​
func main() {
    switch {
    case true:
        fmt.Println("1、case条件语句为false!")
        fallthrough
    case false:
        fmt.Println("2、case条件语句为true!")
    default:
        fmt.Println("默认的case")
    }
}

代码分析:

  • 正常来说当执行完第一条语句以后不会执行第二个case,因为第二个casefalse而且已经执行完了第一个truecase
  • fallthrough关键字存在会强制执行第二个case

Type Switch

特点:

  • 判断某个 interface 变量中实际存储的变量类型
  • 可以枚举类型,值类型和引用类型都可以

语法格式:

switch x.(type){
    case type:
       statement(s);      
    case type:
       statement(s); 
    /* 你可以定义任意个数的case */
    default: /* 可选 */
       statement(s);
}

示例:

package main
​
import (
    "fmt"
    "go/types"
)
​
func main() {
    var inter interface{} = true
​
    //使用变量去代替接口当中的值并且判断类型
    switch i := inter.(type) {
    case types.Nil:
        fmt.Println("x的类型是:", i)
    case int:
        fmt.Println("x是int类型")
    case float64:
        fmt.Println("x是float64类型")
    case func(int2 int):
        fmt.Println("x是func(int)类型")
    case bool, string:
        fmt.Println("x是bool或string类型")
    default:
        fmt.Println("未知类型")
    }

可以直接判断接口当中的数据的数据类型

到此这篇关于Go中的条件语句Switch详解的文章就介绍到这了,更多相关Go条件语句Switch内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Golang 相关文章推荐
Go语言中break label与goto label的区别
Apr 28 Golang
解决golang post文件时Content-Type出现的问题
May 02 Golang
Golang二维数组的使用方式
May 28 Golang
修改并编译golang源码的操作步骤
Jul 25 Golang
Go语言并发编程 sync.Once
Oct 16 Golang
Go语言基础函数基本用法及示例详解
Nov 17 Golang
golang实现浏览器导出excel文件功能
Mar 25 Golang
实现GO语言对数组切片去重
Apr 20 Golang
Golang bufio详细讲解
Apr 21 Golang
Golang 结构体数据集合
Apr 22 Golang
Go语言入门exec的基本使用
May 20 Golang
详解Go语言中配置文件使用与日志配置
Jun 01 Golang
Go Plugins插件的实现方式
Aug 07 #Golang
使用GO语言实现Mysql数据库CURD的简单示例
Aug 07 #Golang
go使用Gin框架利用阿里云实现短信验证码功能
Aug 04 #Golang
手把手教你导入Go语言第三方库
Aug 04 #Golang
Go语言实现Base64、Base58编码与解码
Jul 26 #Golang
golang内置函数len的小技巧
Jul 25 #Golang
修改并编译golang源码的操作步骤
You might like
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
Python中zip()函数用法实例教程
2014/07/31 Python
进一步探究Python中的正则表达式
2015/04/28 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
解决python删除文件的权限错误问题
2018/04/24 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
幼儿园五一活动方案
2014/02/07 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python