加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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可以通过反射的
机制获取到,最常用的场景就是json序列化和反序列化

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读