【Go常见错误】6. JSON错误之结构体中存在匿名字段(2)

阅读: 评论:0

【Go常见错误】6. JSON错误之结构体中存在匿名字段(2)

【Go常见错误】6. JSON错误之结构体中存在匿名字段(2)

概述

在Go语言中,如果我们声明了一个没有名称的字段,这叫做嵌入字段

嵌入字段用于提升嵌入类型的字段和方法,如下:

type Event struct {ID inttime.Time ①
}

① 嵌入的字段

time.Time是一个嵌入字段,因为它没有名称声明。如果我们创建一个Event结构体类型,我们可以在Event结构体层直接访问time.Time的方法。

event := Event{}
second := event.Second() ①

① 如果结构体中没有嵌入time.Time类型,例如我们在上面的结构体中指定的是一个t变量名的字段,我们要访问Second方法时需要使用下面的方法:Second()

该Second方法被提升为可通过Event结构直接访问的方法。这就是为什么嵌入式字段主要用于结构体或接口中,而不是像int或string之类的基本类型

案例

使用JSON的marshaling方法封装嵌入字段会有什么影响呢?我们将实例化一个Event示例并把他marshal成JSON格式。下面的这段代码将输出什么呢?


event := Event{ID: 1234,Time: time.Now(), ①
}
b, err := json.Marshal(event)
if err != nil {return err
}
fmt.Printf("json: %sn", string

本文发布于:2024-01-29 10:34:30,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170649567314668.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:错误   字段   常见   结构   JSON
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23