第一部分的内容是 Golang 语言的基础语法。
1.变量:
在 Golang 中,可以使用关键字 var 来声明变量,也可以使用简写语法 := 进行声明。例如:
goCopy codevar x int
x = 10
// 等价于
x := 10
2.常量:
常量是固定不变的值,在 Golang 中,使用 const 关键字来声明常量,例如:
const Pi = 3.14
3. 数据类型:
Golang 支持多种数据类型,包括整数、浮点数、字符串、布尔值等,下面是一些常见的数据类型:
- 整数类型:int8、int16、int32、int64 和 int。
- 浮点数类型:float32 和 float64。
- 字符串类型:字符串是由一系列字符组成的数据类型,使用双引号 "" 或反引号 ` ` 来表示字符串。
- 布尔类型:布尔类型只有两个取值,即 true 和 false。
- 数组类型:数组是一组相同类型的数据的集合。
- 切片类型:切片是数组的一个视图,它对底层数组的修改是可见的。
- 结构体类型:结构体是一种用户定义的数据类型,用于把不同类型的数据组合在一起。
- 接口类型:接口是一种引用类型,用于描述对象的行为。
4.运算符:
Golang 支持常见的算术、关系和逻辑运算符,如加、减、乘、除、比较等。
5.控制结构:
Golang 中有多种控制结构,用于实现不同的流程控制,如 if/else 语句、for 循环、switch/case 语句等。
5.1. If/Else 语句:
If/Else 语句是 Golang 中常用的条件语句,用于判断某个条件是否成立,并在条件成立或不成立时执行不同的语句。语法如下:
if condition {
// code to be executed if condition is true
} else {
// code to be executed if condition is false
}
其中 condition 是一个布尔表达式,可以是任何能够评估为 true 或 false 的表达式。如果 condition 为 true,则执行 if 语句块中的语句;如果 condition 为 false,则执行 else 语句块中的语句。
注意,在 Golang 中,大括号是必需的,并且必须和 if/else 语句放在同一行,否则将会产生编译错误。
例如:
package main
import "fmt"
func main() {
x := 10
if x > 5 {
fmt.Println("x is greater than 5")
} else {
fmt.Println("x is less than or equal to 5")
}
}
在这个例子中,如果变量 x 的值大于 5,则打印 “x is greater than 5”;否则,打印 “x is less than or equal to 5”。
5.2 For循环:
For 循环是 Golang 中最常用的循环语句,用于在指定的范围内重复执行一段语句。在 Golang 中,有三种不同的 For 循环语法:
- For 循环语法:
for init; condition; post {
// code to be executed
}
在每次循环中,首先执行 init 语句,然后评估 condition,如果 condition 为 true,则执行循环体,最后执行 post 语句。
- For 循环的简写语法:
for condition {
// code to be executed
}
简写语法相当于:
for ; condition; {
// code to be executed
}
在每次循环中,只需评估 condition,如果 condition 为 true,则执行循环体。
- For range 循环:
for key, value := range collection {
// code to be executed
}
For range 循环是一种特殊的循环语法,用于遍历数组、切片、字符串、map 等集合类型。在每次循环中,会将集合中的下一个元素赋值给变量 key 和 value,然后执行循环体。
例如:
package main
import "fmt"
func main() {
arr := []int{1, 2, 3, 4, 5}
for i, val := range arr {
fmt.Printf("Index: %d, Value: %d\n", i, val)
}
}
在这个例子中,For range 循环用于遍历数组 arr,并打印每个元素的索引和值。
同时需要注意的是,For 循环的简单写法。不用第三个部分,也可以写作无限循环。
例如:
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
// for 循环不需要三个部分,也可以写作无限循环
j := 0
for {
fmt.Println(j)
j++
if j == 5 {
break
}
}
}
5.3 Switch / Case语句:
Switch / Case 语句是 Golang 中一种分支语句,用于在多个可能的情况下,执行不同的语句。它的语法如下:
switch expression {
case value1:
// code to be executed
break
case value2:
// code to be executed
break
...
default:
// code to be executed if expression doesn't match any case value
}
在每次循环中,首先计算表达式 expression 的值,然后在所有 case 值中查找与其匹配的值。如果找到了匹配的值,则执行相应的语句,否则执行 default 语句。
例如:
package main
import "fmt"
func main() {
i := 3
switch i {
case 1:
fmt.Println("i is 1")
case 2:
fmt.Println("i is 2")
case 3:
fmt.Println("i is 3")
default:
fmt.Println("i is not 1, 2 or 3")
}
}
在这个例子中,程序会输出:
i is 3
注意,在每个 case 后,都需要添加 break 语句来终止 switch / case 语句的执行,否则将会继续执行后面的语句。但是,如果需要再多个 case 中执行相同的语句,可以使用 fallthrough 关键字。