走进Go语言基础|青训营笔记

84 阅读3分钟

这是我参与【第五届青训营】伴学笔记创作活动的第1天 本课重点:Go语言的基础语法 Go学习 Day1 Golang只有一种循环表示:for 死循环为for{} Golang中的for,if后必须有“{”且“}”必须在下一行 switch case语句中执行case时不用加break go中的switch语句更加强大,可以使用任意变量类型,比如:结构体,字符串等,甚至switch可以取代任意的if-else语句 即可以 在switch不加任意的变量在case中去写条件分支 var a [5]int表示可以存放五个整形变量的数组a,数组不常用因为长度固定 切片:切片相当于一个任意长度的数组,可以在任意时刻更改长度,也有更丰富的操作 即,用make创建一个切片(s:=make([ ]string,3)s便可以当数组去用,且可随时更改长度 切片可以用append去堆加元素,注意append的用法,他必须把append的值重新赋给数组即s:=append(s,"d")此时就给s切片增加了新的元素“d” 在创建切片时,可以直接定义上一个长度即 c:=make([ ]string,len(s)) 还可在此基础上用copy操作将s切片的内容拷贝在c上即 copy(c,s) 在提取打印元素时用“:”可选择要打印的范围即 fmt.Println(s[2:5])表示打印出第二个元素到第五个元素的内容 不包括第五个位置的元素 即, 如s:=[a,b,c,d,e,f] fmt.Println(s[2:5])为:[c,d,e] map 是使用最频繁的数据结构,用make创建一个空map即 m:=make(map[string]int)注意:用到了两个类型 string int m["one"]=1 m["two"]=2 可以写出KV一对 也可以用delete删除即delete(m,"one") 在读取时,可以在查找元素后加一个”ok“来判断有无“k“的存在 即 r,ok:=m["one"],结果为1,false range 对于一个切片/数组或者map我们可以通过range来快速遍历 range遍历时对于数组会返回两个值,第一个时索引,第二个是对应位置的值,如果我们不需要索引可用_"去取消 对于map第一个值是”key”第二个值是value go中的函数返回时一般返回两个值,第一个是“value"第二个是判断是否存在 指针,go中 的指针非常有限主要作用是对传入的参数进行修改 错误操作: func add(n int){ n+=2//只是做了一个拷贝不起作用
} 正确操作 frnc addptr(n *int){ n+=2运算时加“” } 调用时加上一个“&” addptr(&n) 结构体:大类型字段的集合 type user struct{ name string passward string } 可以用结构体名称初始化一个结构体变量,在初始化时我们需要传入每个字段的初始值,也可以定义一部分初始值,没有初始化值的话,该字段就是一个空值即 a:=user{name:"wang",passed:"10124")} 我们用“.字符串的名字去读取/写入字符串的内容”即 var d user d.name="wang" 结构体同样可以做参数,做参数的话就有指针和非指针两种用法,指针使用时为(*user)

带指针就能对结构体进行 修改 可以在函数中加入“error”来表示函数是否出错例如: func hanshu (users [ ]user,name string) ( v *user,err error){ //返回时就得返回两个值 如: return nil,errors Now("not found") }

本节课讲述的相对基础,只要认真学,查缺补漏,就一定有收获