从本节开始学习Go语言中的控制结构,其实每一种语言的控制结构非常雷同,只是在关键字、格式上略有差别。
基本语法if-else
Go中基本if-else的使用方法
1
2
3
4
5
6
7
8
9
10
11
12
13
| package main
import {
"fmt"
}
func main() {
if 5 > 1 {
fmt.Println("bigger!")
} else {
fmt.Println("smaller!")
}
}
|
多重条件if-else if-else
这里有几个知识点需要注意:
- Go语言中else if的表达方法
- 对于条件,可以有括号,也可以没有括号,根据计算优先级都是一样的
- 或操作是||,并且是&&,否是!
- Go语言中还有Switch的表达方式,如果有else if太多了,Switch是不错的选择
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| package main
import "fmt"
func main() {
i := 8
if !( i > 0 ) {
fmt.Println("i is below zero")
} else if ( i > 0 ) && ( i <= 3 ) {
fmt.Println("i is between 0 and 3")
} else if ( i > 3 && i <= 7 ) {
fmt.Println("i is between 4 and 7")
} else if ( ( i > 7 ) && ( i <= 10 ) ) {
fmt.Println("i is between 7 and 10")
} else {
fmt.Println("i is bigger than 10")
}
}
|
常用类型的空判断
这里罗列出常用变量类型的为空判断,可以看到整型、浮点型默认值等于0,布尔型为false,而数组和Map为nil
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| package main
import "fmt"
func main() {
var b bool
if !b {
fmt.Printf("bool b default is %v\n", b)
}
var i int
if i == 0 {
fmt.Printf("i == 0: %v\n", i == 0)
}
var f float64
if f == 0 {
fmt.Printf("f == 0: %v\n", f == 0)
fmt.Printf("f == 0.0: %v\n", f == 0.0)
}
var str string
if str == "" {
fmt.Printf("str == \"\": %v\n", str == "")
}
var myarray []int
if myarray == nil {
fmt.Printf("myarray == nil: %v\n", myarray == nil)
}
var mymap map[int]string
if mymap == nil {
fmt.Printf("mymap == nil: %v\n", mymap == nil)
}
}
|