概述
[TOC]
golang提供了下面几个关键字:if/else
、for
、switch/case/fallthrough
、select
、break
、continue
、goto
等,实现程序的分支控制,并且赋予它们不同的用法。在本节中我们会重点讨论除了select
的其他关键字,select
会放在并发和通信的时候提到。
分支
golang的分支语句的关键字为if/else
、switch/case/fallthrough
、select
后者会在并发和通信的时候提到。
- 一个
if/else
的语法如下:
if optionalStatement1; booleanExep {
blocks
} else if optionalStatement2; booleanExep {
blocks
} else {
blocks
}
其中optionalStatement1
是一个可选的表达式:
if a := addSomething(); a {
fmt.Println(a)
}
//上面的代码等价于下面
a := addSomething()
if a {
fmt.Println(a)
}
switch
语句
golang的switch
语句相较于C/C++有几点不同:首先它的case
语句支持任意可比较的类型、其次是case
语句不会自动向下执行,最后switch
支持数据类型表达式的用法。
case
语句支持任何能够做等于比较的数据类型
golang
switch ext := getext(file); ext {
case "jpg":
fmt.Println("jpg file")
case "png":
fmt.Println("png file")
default:
fmt.Println("other file")
}
case
语句不会自动向下执行,如果需要向下执行,需要添加fallthrough
golang
switch ext := getext(file); ext {
case "jpg":
fallthrough
case "png":
fmt.Println("image file")
default:
fmt.Println("other file")
}
switch
支持数据类型表达式的用法
golang
switch x.(type) {
case bool:
fmt.Println("x is bool")
case int:
fmt.Println("x is int")
default:
fmt.Println("other file")
}
循环
对于循环控制,golang仅提供了for语句,但是赋予了其更加灵活的用法,足以满足需求:
for {
//无限循环
}
for booleanExp {
//条件循环,相当于while
}
for optionalStatement1; booleanExp {
}
for index, char := range aString {
//迭代字符串
}
for char := range aString {
//迭代字符串
}
for index, item := range anArrOrSlice {
//迭代数组或切片
}
for item := range anArrOrSlice {
//迭代数组或切片
}
for key, value := range anMap {
//迭代字典
}
for key := range anMap {
//迭代字典
}
for item := range Channels {
//迭代通道
}
对于break
、continue
、goto
,分别用于进行循环控制使用,满足一定条件跳出循环、结束本次循环以及跳转到指定位置。
最后
以上就是欣慰心情为你收集整理的golang-流程控制分支循环的全部内容,希望文章能够帮你解决golang-流程控制分支循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复