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。

  

golang学习笔记 --switch的更多相关文章

  1. golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题

    golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题 下面这个程序运行的能num结果是什么? package main import ( "fmt" " ...

  2. golang学习笔记19 用Golang实现以太坊代币转账

    golang学习笔记19 用Golang实现以太坊代币转账 在以太坊区块链中,我们称代币为Token,是以太坊区块链中每个人都可以任意发行的数字资产.并且它必须是遵循erc20标准的,至于erc20标 ...

  3. golang学习笔记18 用go语言编写移动端sdk和app开发gomobile

    golang学习笔记18 用go语言编写移动端sdk和app开发gomobile gomobile的使用-用go语言编写移动端sdk和app开发https://blog.csdn.net/u01249 ...

  4. golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍

    golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架:gocolly/colly,goquery,colly,chrom ...

  5. golang学习笔记16 beego orm 数据库操作

    golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...

  6. golang学习笔记14 golang substring 截取字符串

    golang学习笔记14 golang substring 截取字符串golang 没有java那样的substring函数,但支持直接根据 index 截取字符串mystr := "hel ...

  7. golang学习笔记13 Golang 类型转换整理 go语言string、int、int64、float64、complex 互相转换

    golang学习笔记13 Golang 类型转换整理 go语言string.int.int64.float64.complex 互相转换 #string到intint,err:=strconv.Ato ...

  8. golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题

    golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题 今天测试了重新建一个项目生成新的表,然后复制到旧的项目 ...

  9. golang学习笔记11 golang要用jetbrain的golang这个IDE工具开发才好

    golang学习笔记11   golang要用jetbrain的golang这个IDE工具开发才好  jetbrain家的全套ide都很好用,一定要dark背景风格才装B   从File-->s ...

随机推荐

  1. ASP输出JSON数据及客户端jQuery处理方法

    首先ASP处理JSON需要json官方提供的JSON For ASP 封装类文件,下载地址:http://code.google.com/p/aspjson/downloads/list 下载最新的J ...

  2. android中实现简单的聊天功能

    这个例子只是简单的实现了单机版的聊天功能,自己跟自己聊,啦啦~~ 主要还是展示RecyclerView控件的使用吧~ 参考我之前写的文章: android中RecyclerView控件的使用 andr ...

  3. LintCode: Identical Binary Tree

    C++ /** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; ...

  4. robot framework-databaselibaray库使用(python)

    公司做项目用到了databaselibaray,刚开始使用时碰到了很多问题,网上也查阅了很多资料终于是可以用了,现在整理记录下来,有需要的同学可随意使用: 另,本文主要是databaselibaray ...

  5. How to check WWN and Multipathing on Windows Server

    There are many ways to find the World Wide Name (WWN) of fibre channel HBA connected to windows serv ...

  6. sharepoint 2010 怎样在Ribbon区加入功能button

    继续前面的一篇博客,sharepoint 2010 怎样在列表中加入功能菜单操作项.这次主要是记录下,在Ribbon区域加入功能button.比如加入收藏button.例如以下图所看到的: 1. 还是 ...

  7. Python 入门必学的8个知识点

        文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论

  8. C# new和初始化

    虽然知道使用new可以创建对象,但一直不是很理解初始化和new等知识的具体. 通过8个问题和需求,了解相关知识. 了解问题和需求 1.new 的三个步骤 2.初始化是什么意思. 3.变量声明后和变量赋 ...

  9. Java通过在主循环中判断Boolean来停止线程

    Java代码: package Threads; /** * Created by Frank */ public class StopBoolean extends Thread { // 确保变化 ...

  10. phoneGap+jquery mobile项目经验

        最近一个月,一直在用phoneGap+jquery mobile来开发一项目. 下面谈谈自己在开发过程中遇到的一些问题以及解决方法. 开始选择框架时,曾试过采用其他框架做UI,例如chocol ...