golang基础-结构体tag、匿名字段
发布时间:2020-12-16 09:44:57 所属栏目:大数据 来源:网络整理
导读:struct中的tag 我们可以为struct中的每个字段,写上一个tag。这个tag可以通过反射的 机制获取到,最常用的场景就是json序列化和反序列化 package main import "fmt" import "encoding/json" type student struct { Name string `json:"stu_name"` Age int }
struct中的tag我们可以为struct中的每个字段,写上一个tag。这个tag可以通过反射的 package main
import "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:golanggo_prosrcsafly> go run demo.go
{"stu_name":"safly","Age":10}
PS E:golanggo_prosrcsafly>
匿名字段package main
import (
"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:golanggo_prosrcsafly> go run demo.go {{saly 10} 100} --------------------- {{ss 11} 1000} PS E:golanggo_prosrcsafly>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |