GO语言基础语法|青训营笔记

45 阅读2分钟

目录

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{

}