运算符
算数运算符
+ - * /
逻辑运算符
|| && !
位运算符
| & >> << ^
赋值运算符
+= -= = ……
++ 和 -- 是独立的语句,不是运算符
比较运算符
> >= < <= == != ……
数组 array
var age [30]int
var age = [3]int{1,2,3}
var names [20]string
数组包含元素的类型和个数,元素的个数(长度)属于数组的一部分
数组是值类型
切片
切片详细链接
切片的定义
切片:指针、长度、容量
切片是引用类型,不能直接别叫,只能和nil比较
var a []int // 定义int类型的切片
var b []int{} // 定义int类型的切片并初始化
var c []bool{false, true} // 定义bool类型的切片并初始化
切片的扩容策略:
1.如果新申请的容量大于原来的2倍,则直接扩容新申请的容量
2.如果小于1024,那么直接扩容2倍
3.如果大于1024,那么直接扩容1.25倍
4.具体类型不同,扩容的策略也不同
append
func append(slice []Type, elems ...Type) []Type
slice = append(slice, elem1, elem2)
slice = append(slice, anotherSlice...) // 切片加入切片 anotherSlice...表示将另一个slice拆开
指针
两个符号: & 和 *
map
map是存储键值对的数据
key和value
var ST map[int]string
ST = make(map[int]string, 10)
ST[1] = "www"