1. 变量定义
1.1 标准格式
变量的定义,使用var
关键字,格式为var 变量名 变量类型
var age int
var count int = 100
函数内部定义的变量必须被使用,否则将会编译出错。
1.2 批量格式
多个变量也可以放到一起定义和初始化,使用()
包围即可。
var (
age int
count int
)
1.3 类型推导
GO语言中变量在定义的时候可以省略掉基本类型由编译器自己推导。如
var age = 100
var name = "Zhang San"
1.4 短格式
GO语言中也支持简短格式的变量定义,但是在定义的时候需要进行初始化。
age := 100
2. 常量定义
常量定义使用const
,常量定义之后不允许更改,如
const pi = 3.14 // 正确
pi = 3.14159 //错误
和变量一样,常量的定义也支持批量格式。
const (
statusOK = 200
notFound = 404
)
当然,在批量格式的时候,如果当前行的变量没有赋初值,将会和上一行的值保持一致。
const (
a1 = 1
a2 // 值为1
a3 // 值为1
)
iotaiota
具体读啥我也不知道,来自希腊字母。iota
的使用和其他语言中的枚举比较类似。iota
在每次出现const
的时候值会变为0,在每行const变量定义之后iota
的值将会加1。比如
const (
b1 = iota // 此时b1为0
b2 // b2与上一行保持一致,即也为iota,此时b2的值为1
b3 // b3和b2保持一致也为iota,b3的值为2
)
3.基本类型
3.1 整型
GO语言中定义变量的时候默认数值类型为int
。
3.2 浮点型
浮点型分为float32
和float64
,在变量定义的时候默认的数值类型为float64
。
3.3 布尔型
使用bool
来定义布尔型变量。布尔型变量默认值为false
。和其他语言如C
语言不同的是GO
语言中的布尔型变量不能和整型之间进行赋值。
3.4 字符串
常用的几个字符串操作函数。
函数 | 作用 |
---|---|
strings.Split(s, ",") | 通过, 将字符串进行分割 |
strings.Index(s, "a") | 查找a 在字符串s 中的位置 |
strings.Join(elems []string, "-") | 通过"-"将elems 中各个字符串连接起来 |
strings.Contains(s, "a") | 字符串s 中是否包含a |
3.5 rune
rune
类型用来表示一个字符,和字节不同的是一个字节一般只能表示一个ASCII
码,像中文经过UTF-8
编码之后就需要占据多个字节。此时就需要使用rune
类型来表示一个中文字符。
s1 := "白萝卜"
fmt.Println(len(s1)) // 打印值为9
s2 := []rune(s1)
fmt.Println(len(s2)) // 打印值为3