这篇文章会不断的更新,我会记录我在使用过程中一时想不起的语法。
数组
//给二维数组中追加值 var ResRow [][]int res_col := make([]int, len) ResRow = append(ResRow,res_col)
二维数组初始化值
row, column := 3, 4 var answer [][]int for i := 0; i < row; i++ { inline := make([]int, column) answer = append(answer, inline) } fmt.Println(answer) // 方法1 answer1 := make([][]int, row) for i := range answer1 { answer1[i] = make([]int, column) } fmt.Println(answer1)
深度比较多维数组
reflect.DeepEqual(y, table.y)
集合操作
map
//声明后再赋值 m1 := make(map[string]string) m1["name"] = "编程三分钟" fmt.Println(m1["name"]) //声明时赋值 m1 := map[string]string{ "name":"编程三分钟", } fmt.Println(m1["name"])
map的遍历
// 需要携带 value for name,score := range fruits{ fmt.Println(name, score) } // 只需要key for name := range fruits{ fmt.Println(name) }
map中是否存在某个key
//这也是If的一种不错的用法 if _,ok := map1[key1];ok { //.... }
删除key,不存在也不会报错
delete(map1,"coding3min")
类型转换
string与byte的转换
//string to bytes resBytes := []byte("asdfasdf") //bytes to string resString := string(resBytes)
循环
for 循环
for i := 0; i < 10; i++ { fmt.Printf("%d ", i) } //死循环 for { break; }
foreach
//遍历key value 注意复制的是副本 for k, v := range x { fmt.Println(x[k]==v) } //遍历key for k := range x { fmt.Println(x[k]) }
json
序列化和反序列化
//生成json对象(map类型) resJsons, err := json.Marshal(&jsonStruct) //转string req_str = string(resJsons) //反序列化 err := json.Unmarshal([]byte(req_str), &jsonStruct)