在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小时内删除。
留言与评论(共有 0 条评论) |