友情推广
if else
if else用于条件判断,else关键字用于处理if条件以外的情况,是对if的一种补充,if else基本语法是:
if condition {
// do sonething
}
if condition {
//do something
} else {
// do something
}
多种情况条件判断,if语句实现方式是:
if condition1 {
// do something
} else if condition2 {
// do something
} else {
// other
}
golang的if语句比c/c++的if语句有一个特殊额之处,主要由于golang函数可以返回多个值,如果在if中调用返回多个值的函数,那么if就不知道哪个返回值是bool类型了。golang中解决if使用多返回值的办法是:
if val, ok:= 函数调用; ok {
// do something
}
首先假设函数调用放回两个参数,第一个返回值是字符串类型,第二个返回值是bool类型。获取到两个返回值后,使用分号隔开,在分号后边判断bool类型变量,如果ok为true,执行if中的代码块,如果ok为false,跳过if中的代码块。
下边来看一段示例代码:
package main
import (
"fmt"
)
func demo() (str string, flag bool) {
return "hello world", true
}
func main() {
// 第一种写法
str, ok := demo()
if ok {
fmt.Println(str)
}
// 第二种写法
if val, ok := demo(); ok {
fmt.Println(val)
}
}
在遇到函数返回多个值的情况下,第二种写法明显比第一种写法更为简洁。并且从变量作用域的角度来看,main函数中,str变量作用域是main函数内,而val变量的作用域是if代码块内,使用第二种写法可以更好的限制变量的作用域。