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 := 1002. 常量定义
常量定义使用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