首页 > 其他分享 >流程控制

流程控制

时间:2022-08-16 12:57:30浏览次数:45  
标签:case 控制 string 流程 content switch Println fmt

switch语句

switch、case表达式都会被求职,执行顺序:自左向右,自上而下。只有第一个与与switch表达式求值结果相等的case表达式分支会执行。
default case最多只有一个,如果没有匹配到case分支,并且存在default case,default case才会执行
switch 表达式可以省略,此时true作为Switch表达式的结果
    var content string
    content  = "cccc"
    switch content{
    default:
        fmt.Println("unknow languge")
    case "python":
        fmt.Println("an interpreted language")
    case "go":
        fmt.Println("a compiled language")

    }
switch 包含一条子语句来初始化变量
    var content string
    switch lang:=strings.TrimSpace(content);lang{
    default:
        fmt.Println("unknow languge")
    case "python":
        fmt.Println("an interpreted language")
    case "go":
        fmt.Println("a compiled language")
    
    }
fallthrough跳转到下一个case执行
    var content string
    content = "python"
    switch lang:=strings.TrimSpace(content);lang {
    default:
        fmt.Println("unknow languge")
    case "python":
        fmt.Println("an interpreted language")
        fallthrough
    case "go":
        fmt.Println("a compiled language")
    
    }
类型Switch语句
v.(type)只能用在switch中,是一个特殊的类型断言,虽然特殊,但是也遵循类型断言的规则
    
//方式1
var v interface{} v=map[string]string{} switch v.(type) { case string: fmt.Printf("The string is '%s'.\n",v.(string)) //类型断言 v.(string) case int,uint64,uint8,uint16,uint32,int8,int16,int64,int32: //,号分割标识或 fmt.Printf("the integer is %d.\n",v) default: fmt.Printf("unsupport value. (type=%T)",v) }
//方式2 //i:= v.(type) 类型转换后的值保存在i中,i的类型一定是v的值的时机类型 v=map[string]string{} switch i:= v.(type) { case string: fmt.Printf("The string is '%s'.\n",i) //类型断言 v.(string) case int,uint64,uint8,uint16,uint32,int8,int16,int64,int32: //,号分割标识或 fmt.Printf("the integer is %d.\n",i) default: fmt.Printf("unsupport value. (type=%T)",i) }

 



标签:case,控制,string,流程,content,switch,Println,fmt
From: https://www.cnblogs.com/Hale-wang/p/16591066.html

相关文章

  • pyhton基础之控制流
    1if-else2if-elseif-else3for循环3.1如下所示一段代码y=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']z=[�......
  • Day3(复习:java流程控制)
    Java流程控制 Scanner对象用来获取用户的输入基础语法:Scanners=newScanner(System.in) 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取器要......
  • 控制器概念
     1.Replicaset概念Kubernetes中的ReplicaSet主要的作用是维持一组Pod副本的运行,它的主要作用就是保证一定数量的Pod能够在集群中正常运行,它会持续监听这些Pod的运行......
  • element下拉框远程搜索debounce防抖控制
    一、需求:下拉框支持远程搜索,根据用户输入字符,调接口获取数据渲染到下拉列表上,供用户选择。二、为什么要做防抖控制?在做远程搜索时,如果每输入1个字就调用1次接口,就会频繁......
  • 热更流程
    1、制作AB===>制作记录所有AB的MD5值的文件(可选:可以添加上所有文件加起来的数量,用于后面的断点下载,关键看你怎么实现)2、压缩AB文件和记录所有AB的MD5值的文件,成一个zip......
  • 项目简单的开发流程
    1.需求分析架构师+产品经理+开发组组长在和客服谈需求时,先了解一下客户的需求,然后设计构建一套自己比较好写的方案,在和客户谈需求的时候引导客户往我们之前写好的方案......
  • 12 Django 力度控制到按钮级别
    易理解的按钮控制:customer.html{%extends'layout.html'%}{%loadstatic%}{%loadpermission%}{%blockcontent%}<divstyle="margin-bottom:5px"c......
  • golang超时控制(转)
    Go实现超时退出之前手写rpc框架的时候,吃多了网络超时处理的苦,今天偶然发现了实现超时退出的方法,MARKfuncAsyncCall(){ ctx,cancel:=context.WithTimeout(context.......
  • git学习(03)git工作区域与工作流程
    四个区域Git本地有三个工作区域工作区(Workspace):存放项目代码的地方。暂存区(Stage):存放临时的改动,事实上它只是一个文件,保存即将提交到文件列表信息。资源库(Repositor......
  • mybatis事务-支付流程笔记-含建表代码
    相关表:SETNAMESutf8mb4;SETFOREIGN_KEY_CHECKS=0;--------------------------------Tablestructureforgoods_info------------------------------DROP......