目录
go基础语法
基本类型
bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr byte // uint8 的别名 rune // int32 的别名 float32 float64 complex64 complex128
定义
var 变量名 类型
var name, sex = "pprof.cn", 1
const
const (
pi = 3.1415
e = 2.7182
)
初始化
数值类型为 0 布尔类型为 false 字符串为 ""(空字符串)
数组array
数组的长度固定,且必须在声明的时候定下来
定义:
var 数组名 [const]类型 = [const]类型{1,2,3}
var a [5]int = [5]int{1,2,3,4,5}
var b = [5]int{1,2,3,4,5}
var b = [...]int{1,2,3,4,5}
二维数组
var arr0 [5][3] int
数组方法
len数组中的元素数量
cap数组的总容量
切片slice
切片是数组的引用,属于引用类型
定义
var s1:= []int
var s2=make([]int,n)//n为长度
var s3=[...]int{1,2,3}
二维数组
var s1:=[][]int
var s2:=make([][]int,n,m)
指针
go的指针不能进行偏移和运算,是安全指针
Map(key-value结构)
map是一种key-value的数据结构,是引用类型,需要先进行初始化
var map1=make(map[string]int,8)// [key]value,cap
赋值方式:
map1[key]=value
判断存在:
value, ok := map[key]
ok为bool类型,若存在v=value,ok=true。不存在ok=false
遍历:
遍历map时的元素顺序与添加键值对的顺序无关
for k ,v :=range map1{
}
删除:
delete(map, key)
map遍历本身无序,当需要排序时,将所有的key放入一个新的切片s1中,然后对s1排序,按照s1的顺序访问map
流程控制
if
if 布尔表达式 {
} else {
}
不支持3元表达式
for、range
i短变量声明,只在循环内有效
for i:=0;i<n;i++{
}
i为index,j为index对应的value,range的作用对象可以是数组,切片,map类型
for i,j:=range arr1{
}