我们可以为struct中的每个字段,写上一个tag。这个tag可以通过反射的
机制获取到,最常用的场景就是Json序列化和反序列化
package mainimport "fmt"import "enCoding/Json"type student struct { name string `Json:"stu_name"` Age int}func main() { var stu student = student{ name:"safly",Age:10,} data,err := Json.Marshal(stu) if err != nil{ fmt.Println("Json encode stu Failed",err) return } fmt.Println(string(data))}
输出如下:
PS E:\golang\go_pro\src\safly> go run demo.go{"stu_name":"safly","Age":10}PS E:\golang\go_pro\src\safly>匿名字段
package mainimport ( "fmt")type student struct { name string age int}type stu struct{ student int}func main() { var stu1 stu stu1.name = "saly" stu1.age =10 stu1.int = 100 fmt.Println(stu1) fmt.Println("---------------------") var stu2 stu stu2.name = "salyyy" stu2.age =100 stu2.int = 1000 //都设置age name时候,就看自己的 stu2.student.name = "ss" stu2.student.age = 11 fmt.Println(stu2)}
输出如下:
PS E:\golang\go_pro\src\safly> go run demo.go {{saly 10} 100} --------------------- {{ss 11} 1000} PS E:\golang\go_pro\src\safly>总结
以上是内存溢出为你收集整理的golang基础-结构体tag、匿名字段全部内容,希望文章能够帮你解决golang基础-结构体tag、匿名字段所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)