- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Golang学习笔记(三):控制流由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
控制结构分为: 条件+选择+循环 。
IF 。
1.说明 。
。
条件表达式没有括号 支持一个初始化表达式(可以是多变量初始化语句) 初始化语句中定义的都是只能在block级别中使用的局部变量,不能在block之外使用 左大括号必须和条件语句在同一行(必须与if/else在同一行) go没有三元运算符 。
。
if判断语句条件不需要括号 在判断语句里卖弄允许声明一个变量,其作用域只在逻辑块内,其他地方不起作用 花括号一定存在,且必须与if/else在同一行 。
。
2.语法 。
//基本 if a > 0 { //无括号 dosomething() } else if a == 0 { //必须用花括号 doothertings() } else { donothing() } 。
。
//单行模式 if a > 0 { a += 100 } else { a -= 100 } 。
。
3.示例 。
package main 。
。
func main(){ a := 10 。
if a > 0 { a += 100 } else if a == 0 { a = 0 } else { a -= 100 } println(a) 。
b := 101 if b > 0 { b += 100 } else { b -= 100 } println(b) } 。
//支持一个初始化语句 if a:=1; a<10 { //允许在条件之前执行一个简单语句,由此语句定义的变量作用域仅在if/else范围内 return a } if a, b := 1,2; a+b == 10 { } 。
if x := computedValue(); x > 10 { } else { } 。
。
4.结果 。
。
注意,在有返回值的函数中,不允许将“最终的”return语句放到if ... else ... 结构中,否则编译失败 。
。
FOR 。
for是go的"while", 只支持for关键字.有三种形式 。
1.语法 。
for init; condition; post { //init不支持逗号,只能平行赋值 //condition每次循环开始都会检查,不建议在里面使用函数,建议用计算好的变量/常量代替 //post后面必须跟花括号,每轮循环结束的时候调用 } 。
。
for i:=0; i<10; i++ { } 。
----------------------------- 。
for condition { dosomething() } 。
i:=1 for i<10 { } 。
----------------------------- 。
for { //无限循环 dosomething() } 。
for { a++ if a > 10 { break } } 。
----------------------------- 。
。
2.说明 。
。
3.示例 。
package main 。
。
func main(){ ss := "abcd" for i:=0; i<len(ss); i++ { println(ss[i]) } } 。
得到:
。
4.配合range 。
for循环和保留字range一起使用,完成迭代器iterator操作 。
string, array, slice, map, channel都可以用range进行迭代器操作 。
range返回序号和值,若是不想要,可以用_ 。
得到 。
。
SWITCH 。
python里面没有 。
1.语法 。
支持初始化表达式 。
switch a:=5; a { //默认break,匹配成功后不会自动向下执行其他case,而是跳出整个switch case 0: //普通 println(a) case 1, 2: //多个分支,逗号分隔 println(a) case 100: //什么都不做 case 5: println(a) fallthrough //进入后面的case 进行处理,而不是跳出block default: println(a) //默认 } 注意,不需要break来明确退出一个case,一旦条件符合,自动终止,除非使用fallthough 。
。
-------------- 。
可以不带表达式 switch sExpr { case expr1: //sExpr和expr1必须类型一致,不限制为常量或者证书,可以用任何类型或表达式 ... } 。
switch { case 0 <= Num && Num <= 3: fmt.Printf("3") } 。
。
几种形式
a := 1 switch a { case 0: ... } 。
。
a := 1 switch { case a>=0: .... case a>1: .... } 。
switch a:=1; { case a>=0: ... case a>1: ... } 。
2.替代if...else if…else… 。
。
不指定switch 条件表达式(没有条件表达式,在case语句中有),或者直接为true 。
。
goto break continue 。
均可配合标签使用(标签区分大小写,若声明了没有使用会导致编译错误) 。
break/continue可配合标签用于多重循环跳出 goto是调整执行位置,与其他两个执行结果并不相同 。
1.goto 。
支持函数内部goto跳转 。
请善用 。
必须跳转到当前函数内定义的标签,标签名大小写敏感 。
2.continue 。
。
进入下一次循环 。
3.break 。
终止循环 。
示例 。
package main func main(){ a := 1 LABEL1: println("inc a=", a) a += 1 。
。
LABEL2: //println("here") 。
for ; a < 6; { println(a) if a == 3 { a += 1 continue LABEL2 } if a == 5 { break } goto LABEL1 } } 。
。
结果
最后此篇关于Golang学习笔记(三):控制流的文章就讲到这里了,如果你想了解更多关于Golang学习笔记(三):控制流的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
介绍篇 什么是MiniApis? MiniApis的特点和优势 MiniApis的应用场景 环境搭建 系统要求 安装MiniApis 配置开发环境 基础概念 MiniApis架构概述
我正在从“JavaScript 圣经”一书中学习 javascript,但我遇到了一些困难。我试图理解这段代码: function checkIt(evt) { evt = (evt) ? e
package com.fastone.www.javademo.stringintern; /** * * String.intern()是一个Native方法, * 它的作用是:如果字
您会推荐哪些资源来学习 AppleScript。我使用具有 Objective-C 背景的传统 C/C++。 我也在寻找有关如何更好地开发和从脚本编辑器获取更快文档的技巧。示例提示是“查找要编写脚本的
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
关闭。这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 想改善这个问题吗?更新问题,以便堆栈溢出为 on-topic。 6年前关闭。 Improve this
我是塞内加尔的阿里。我今年60岁(也许这是我真正的问题-笑脸!!!)。 我正在学习Flutter和Dart。今天,我想使用给定数据模型的列表(它的名称是Mortalite,请参见下面的代码)。 我尝试
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
学习 Cappuccino 的最佳来源是什么?我从事“传统”网络开发,但我对这个新框架非常感兴趣。请注意,我对 Objective-C 毫无了解。 最佳答案 如上所述,该网站是一个好地方,但还有一些其
我正在学习如何使用 hashMap,有人可以检查我编写的这段代码并告诉我它是否正确吗?这个想法是有一个在公司工作的员工列表,我想从 hashMap 添加和删除员工。 public class Staf
我正在尝试将 jQuery 与 CoffeScript 一起使用。我按照博客中的说明操作,指示使用 $ -> 或 jQuery -> 而不是 .ready() 。我玩了一下代码,但我似乎无法理解我出错
还在学习,还有很多问题,所以这里有一些。我正在进行 javascript -> PHP 转换,并希望确保这些做法是正确的。是$dailyparams->$calories = $calories;一条
我目前正在学习 SQL,以便从我们的 Magento 数据库制作一个简单的 RFM 报告,我目前可以通过导出两个查询并将它们粘贴到 Excel 模板中来完成此操作,我想摆脱 Excel 模板。 我认为
我知道我很可能会因为这个问题而受到抨击,但没有人问,我求助于你。这是否是一个正确的 javascript > php 转换 - 在我开始不良做法之前,我想知道这是否是解决此问题的正确方法。 JavaS
除了 Ruby-Doc 之外,哪些来源最适合获取一些示例和教程,尤其是关于 Ruby 中的 Tk/Tile?我发现自己更正常了 http://www.tutorialspoint.com/ruby/r
我只在第一次收到警告。这正常吗? >>> cv=LassoCV(cv=10).fit(x,y) C:\Python27\lib\site-packages\scikit_learn-0.14.1-py
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我是一名优秀的程序员,十分优秀!