关于struct的tag的作用及实际应用场景的疑问

package main

type Info struct {
    Name string ``
    Age int ``
    Sex int ``
}

由于刚学go不久还不清楚一些语言特性的具体用途,请问struct的tag的具体作用是什么,实际应用场景会是哪些?以及如何正确的使用,望指点

最佳答案

常用的场景,json序列化\反序列化,配置文件解析。json序列化例子

type Info struct {
   Name string `json:"name"`
  Age  int `json:"age"`
  Sex  int `json:"testkey"`
}

info := Info{Name: "xiaoming", Age: 10, Sex: 1}

if res, err := json.MarshalIndent(info, "", " "); err == nil {
   fmt.Println(string(res))
}

// 输出
{
 "name": "xiaoming",
 "age": 10,
 "testkey": 1
}
1年前 评论
讨论数量: 3

tag其实就是约定好的标识,通过反射拿到,解析

1年前 评论

常用的场景,json序列化\反序列化,配置文件解析。json序列化例子

type Info struct {
   Name string `json:"name"`
  Age  int `json:"age"`
  Sex  int `json:"testkey"`
}

info := Info{Name: "xiaoming", Age: 10, Sex: 1}

if res, err := json.MarshalIndent(info, "", " "); err == nil {
   fmt.Println(string(res))
}

// 输出
{
 "name": "xiaoming",
 "age": 10,
 "testkey": 1
}
1年前 评论

提供内外沟通的管道,例如json 字符串映射,其他的还有配置,注入等等作用

type Info struct { A string json:"b" }

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!