zoukankan      html  css  js  c++  java
  • golang学习笔记 --switch

    switch的例子:

    switch coinflip() {
    case "heads":
      heads++
    case "tails":
      tails++
    default:
      fmt.Println("landed on edge!")
    }
    

      

    例子里的coinflip函数返回几种不同的结果,每一个case都会对应一个返
    回结果,这里需要注意,Go语言并不需要显式地在每一个case后写break,语言默认执行完
    case后的逻辑语句会自动退出。当然了,如果你想要相邻的几个case都执行同一逻辑的话,
    需要自己显式地写上一个fallthrough语句来覆盖这种默认行为。不过fallthrough语句在一般的
    程序中很少用到。

    Go语言里的switch还可以不带操作对象(译注:switch不带操作对象时默认用true值代替,然
    后将每个case的表达式和true值进行比较);可以直接罗列多种条件,像其它语言里面的多个
    if else一样,下面是一个例子:

    func Signum(x int) int {
    switch {
      case x > 0:
      return +1
    default:
      return 0
    case x < 0:
      return -1
      }
    }
    

    这种形式叫做无tag switch(tagless switch);这和switch true是等价的。
    像for和if控制语句一样,switch也可以紧跟一个简短的变量声明,一个自增表达式、赋值语
    句,或者一个函数调用(译注:比其它语言丰富)。

    break和continue语句会改变控制流。和其它语言中的break和continue一样,break会中断当
    前的循环,并开始执行循环之后的内容,而continue会中跳过当前循环,并开始执行下一次循
    环。这两个语句除了可以控制for循环,还可以用来控制switch和select语句

    ,continue会跳过内层的循环,如果我们想跳过的是更外层的循环的话,我
    们可以在相应的位置加上label,这样break和continue就可以根据我们的想法来continue和
    break任意循环。这看起来甚至有点像goto语句的作用了。当然,一般程序员也不会用到这种
    操作。这两种行为更多地被用到机器生成的代码中。

    你可以在 https://golang.org/pkg 和 https://godoc.org 中找到标准库和社区
    写的package。

      

  • 相关阅读:
    HttpClientUtil的工具类请求三方API
    Linux下使用docker搭建ftp服务器
    Springboot2.0.4整合Mybatisplus
    Springboot前后端分离项目,配置跨域
    Nokia S40 系统配置
    "Your profile could not be opened correctly" Google Chromium Browser 错误纠正
    CLR AppDomain
    iTunes下载提速
    Which Programming Language?
    linux下制作软盘镜像文件
  • 原文地址:https://www.cnblogs.com/saryli/p/9994045.html
Copyright © 2011-2022 走看看