Go 语言 if else (条件判断)

发布于: 2020-11-23 13:10:12 作者: 犬小哈 最后修订时间: 2020-11-23 13:10:12

Go 语言中,if else 条件判断格式如下:

if 表达式1 {
  分支1
} else if 表达式2 {
  分支2
} else {
  分支3
}
  • ①:当表达式1的结果为 true 时,会执行分支1的代码;
  • ②:当表达式1的结果为 false 时,会执行表达式2,若结果为 true, 则会执行分支2的代码。
  • ③:当前面的条件都不满足,即都为 false 时,会执行分支3的代码。

PS:表达式2、分支2 、分支3都是可选的,可以根据实际情况自行选择。

注意:Go 语言中规定:if 的 左括号 ‘’{‘’ 必须与 if 表达式放在同一行,如果强行放置在其他位置,会发生如下编译错误。

unexpected newline, expecting { after if clause

下面是代码反例,编译报错图示:

go语言if else条件判断编译报错

同理,与 else 匹配的 “{” 也必须与 else 放置在同一行, else 也必须与上一个 if 或 else if 的右边的大括号放在同一行。

一、Go 语言 if else 条件判断代码示例

下面是一段正确的 if else 条件判断示例:

package main

import "fmt"

func main()  {
	// 定义一个字符串
	str := "quanxiaoha.com"

	// 获取该字符串的实际长度
	len := len(str)

	// 判断字符串的长度是否等于14
	if len == 14 {
		// 若等于14
		fmt.Println("长度等于 14")
	} else {
		// 若不等于14
		fmt.Println("长度不等于 14")
	}
}

代码输出如下:

长度等于 14

二、if 的特殊写法

if 还有种特殊写法,我们可以在 if 表达式之前添加一个执行语句,再根据变量进行判断,代码如下:

if err := Connect(); err != nil {
		fmt.Println(err)
		return
}

Connect() 是一个获取数据库连接的函数,它带有返回值,err := Connect() 是一个语句,执行 Connect() 函数后,将错误赋值给 err 变量。

err != nil 是 if 的条件判断表达式,当 err 不为空时,打印错误并返回。

这种写法可以将返回值和判断放在一行进行处理,使得返回值的作用域范围被限制在了 if else 语句组合中,这样做的好处是,变量的作用域范围越小,那么它可能造成的问题的可能性越小,这对代码的稳定性很有帮助,另外,也可以做炫技使用。

三、结语

本小节中,带着大家学习了 Go 语言流程控制的 if else 条件判断,希望对大家有所帮助。