流程控制主要用于设定计算执行的次序,建立程序的逻辑结构。Go 语言的流程控制和 PHP 类似,支持如下的几种流程控制语句:
if
、else
和 else if
;switch
、case
和 select
(用于通道,后面介绍协程时会提到);for
和 range
;goto
。在实际的使用中,往往会根据具体的业务逻辑,灵活组合上述控制语言来实现相应的功能。
接下来,我们来简单介绍下各种流程控制语句的用法,首先从条件语句开始。条件语句的示例模板如下:
// if
if condition {
// do something
}
// if...else...
if condition {
// do something
} else {
// do something
}
// if...else if...else...
if condition1 {
// do something
} else if condition2 {
// do something else
} else {
// catch-all or default
}
有其他编程语言基础的同学理解起来毫不费力,我们可以编写一个简单的条件语句示例代码如下:
score := 100
if score > 90 {
fmt.Println("Grade: A")
} else if score > 80 {
fmt.Println("Grade: B")
} else if score > 70 {
fmt.Println("Grade: C")
} else if score > 60 {
fmt.Println("Grade: D")
} else {
fmt.Println("Grade: F")
}
这段代码可用于打印指定分数对应的等级。
与 PHP 相比,关于 Go 语言的条件语句,需要注意以下几点:
()
;{}
都是必须存在的;{
必须与 if
或者 else
处于同一行;if
之后,条件语句之前,可以添加变量初始化语句,使用 ;
间隔,比如上述代码可以这么写 if score := 100; score > 90 {