简单例子:
1 | if condition1 { |
注意:
1.即使当代码块之间只有一条语句时,大括号也不可被省略。
2.关键字 if 和 else 之后的左大括号 { 必须和关键字在同一行
1 | if x{ |
使用方式
当 if 结构内有 break,continue,goto 或者 return 语句时,Go 代码的常见写法是省略 else 部分.无论满足哪个条件都会返回 x 或者 y 时,一般使用以下写法:
1 | if condition { |
注意事项 不要同时在 if-else 结构的两个分支里都使用 return 语句,这将导致编译报错 function ends without a return statement(您可以认为这是一个编译器的 Bug 或者特性).( 译者注:该问题已经在 Go 1.1 中被修复或者说改进 )
一些有用的例子
1.判断一个字符串是否为空:
if str == "" { ... }if len(str) == 0 {...}(个人习惯)
2.判断运行 Go 程序的操作系统类型,这可以通过常量 runtime.GOOS 来判断.
1 | if runtime.GOOS == "windows" { |
这段代码一般被放在 init() 函数中执行.这儿还有一段示例来演示如何根据操作系统来决定输入结束的提示:
1 | var prompt = "Enter a digit, e.g. 3 "+ "or %s to quit." |
3.函数 Abs() 用于返回一个整型数字的绝对值:
1 | func Abs(x int) int { |
4.isGreater 用于比较两个整型数字的大小:
1 | func isGreater(x, y int) bool { |
if-else包含一个初始化语句
例如:
1 | val := 10 |
也可以这样写
1 | if val := 10; val > max { |
注意:使用简短方式 := 声明的变量的作用域只存在于 if 结构中(在 if 结构的大括号之间,如果使用 if-else 结构则在 else 代码块中变量也会存在)。 如果变量在 if 结构之前就已经存在,那么在 if 结构中,该变量原来的值会被覆盖.最简单的解决方案就是不要在初始化语句中声明变量.
1 | package main |
输出:
1 | first is 5 or greater |