一、struct与json之间的互转

type Test struct {
  A string `json:"a`
  B int `json:"b"`
}

struct转json

var t Test
t.A="测试"
t.B=2

jsonBytes, err := json.Marshal(t)
if err != nil {
    fmt.Println(err)
}
fmt.Println(string(jsonBytes))

json转struct

jsonStr := `{
                    "a": "测试",
          "b": 2
        }`
var t Test
json.Unmarshal([]byte(jsonStr), &t)
fmt.Println(t)

二、主函数的初始化

var (
    router *gin.Engine
)

func init (){
  router = gin.Default()
}

func main(){
  router.GET("/",func(context *gin.Context) {})
}

三、数组的遍历

var test_array = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
for _,a := range test_array {
    fmt.Println(a)
}

var test_array = [3]string{"test1","test2"}
for _,a := range test_array {
    fmt.Println(a)
}

四、golang程序初始化

golang程序初始化先于main函数执行,由runtime进行初始化,初始化顺序如下:

  1. 初始化导入的包(包的初始化顺序并不是按导入顺序(“从上到下”)执行的,runtime需要解析包依赖关系,没有依赖的包最先初始化,与变量初始化依赖关系类似,参见golang变量的初始化);
  2. 初始化包作用域的变量(该作用域的变量的初始化也并非按照“从上到下、从左到右”的顺序,runtime解析变量依赖关系,没有依赖的变量最先初始化,参见golang变量的初始化);
  3. 执行包的init函数;

变量初始化->init()->main()

Copyright Curiouser all right reserved,powered by Gitbook该文件最后修改时间: 2021-09-16 22:51:51

results matching ""

    No results matching ""