go语言语法备忘

这篇文章会不断的更新,我会记录我在使用过程中一时想不起的语法。

数组

//给二维数组中追加值
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)
发布了132 篇原创文章 · 获赞 15 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/BTnode/article/details/104706030
今日推荐