type SetTime struct {
CreateTime int64 `json:"create_time"`
UpdateTime int64 `json:"update_time"`
}
func (s *SetTime) Set(v int64) {
s.CreateTime = v
s.UpdateTime = v
}
type Out struct {
Name string
SetTime
}
要想访问嵌套结构体的字段以及方法,需要以这种形式
var out Out
out.SetTime.Set()
在json序列化时,展示的效果如下:
{
"Name": "TEST",
"create_time": 1632479850,
"update_time": 1632479850
}
我们可以看到,create_time
update_time
这2个字段没有在嵌套的结构体内。在gorm中,这种形式在create
,scan
中同样有效。
DEMO1:
package main
import (
"encoding/json"
"time"
)
type SetTime struct {
CreateTime int64 `json:"create_time"`
UpdateTime int64 `json:"update_time"`
}
func (s *SetTime) Set(v int64) {
s.CreateTime = v
s.UpdateTime = v
}
type A struct {
Name string
SetTime
}
func main() {
var a A
a.Name = "TEST"
a.SetTime.Set(time.Now().Unix())
b, _ :=