这篇文章会不断的更新,我会记录我在使用过程中一时想不起的语法。
数组
//给二维数组中追加值
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)