一、变量
变量(Variable)的功能是存储数据。Go语言中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。
Go语言的变量声明格式为:
var 变量名 变量类型
例如:
var name string
var age int
var isOk bool
短变量声明
在函数内部,可以使用更简略的 := 方式声明并初始化变量。
func main() {
n := 10
m := 200 // 此处声明局部变量m
fmt.Println(m, n)
}
二、常量
相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。
const 常量名 常量类型 = 常量值
例如:
const name string = "张三"
const age int = 18
const isOk bool = false
三、数据类型
Go 中可用的基本类型:
- bool(布尔)
- int8、int16、int32、int64、int(数值:整型可有符号)
uint8、uint16、uint32、uint64、uint(数值:整型无符号)
float32, float64(数值:浮点型)
complex64, complex128
byte
rune - string(字符串)
数据类型的转换
Go 对显式类型非常严格。没有自动类型提升或转换。需要在运算前进行数据类型统一。
- 数值间的类型转换
var age uint = 18
var height float64 = 180.5
var num1 uint = age + uint(height)
var num2 int = int(age) + int(height)
var num3 float64 = float64(age) + height
- 字符串数值间的转换
var money int = -10
var age2 string = "10"
var intToStr string = strconv.Itoa(money)
var strToInt, _ = strconv.Atoi(age2)
四、循环
for是 Go 中唯一可用的循环。Go 没有其他语言中存在的 while 或 do while 循环。
for initialisation; condition; post {
}
例如
for i := 0; i < 10; i++ {
fmt.Println(i)
}
结束循环
- break 会结束所有循环。
- continue 会跳过当前循环直接进入下一次循环。
五、条件判断
if else 语句
if是一个具有布尔条件的语句,如果该条件为真,则执行第一个代码块。如果条件求值为false,则执行另一个else块。
if 条件 {
# 业务代码
} else {
# 业务代码
}
例如
for i := 0; i <= 9; i++ {
if i < 3 {
fmt.Println("小树枝", i)
} else if i >= 3 && i < 6 {
fmt.Println("中树枝", i)
} else {
fmt.Println("大树枝", i)
}
}
switch 语句
switch 是一个条件语句,它计算表达式并将其与可能匹配的列表进行比较并执行相应的代码块。它可以被认为是替换复杂if else从句的惯用方式。
switch 变量 {
case 值:
# 业务代码
case 值:
# 业务代码
default:
# 业务代码
}
例如
for i := 0; i <= 9; i++ {
switch i {
case 1, 2:
fmt.Println("小树枝", i)
case 3, 4, 5:
fmt.Println("中树枝", i)
case 6, 7, 8:
fmt.Println("大树枝", i)
default:
fmt.Println("其他树枝", i)
}
}