Golang将任何结构存储在其他结构字段中

时间:2019-09-23 06:43:22

标签: go struct

我有此代码:

type TestData struct {
    Key string
}

type TemporaryStoreItem struct {
    key string
    data interface{}
    aliveUntil time.Time
}

func (s *TemporaryStoreItem) SetData(src interface{}) {
    src = s.data
}

data := TestData{
    Key: "value",
}

item := TemporaryStoreItem{
    key:     "item1",
    data:    data,
    aliveUntil: time.Now(),
}
oldItem := TestData{}
item.SetData(&oldItem)

我需要在TemporaryStoreItem的“数据”字段中保存任何数据或指向数据的指针,并且我需要以TestData结构(或任何其他源结构)获取数据,我做错了什么,并且有可能实现这一点想法?

1 个答案:

答案 0 :(得分:0)

func (s *TemporaryStoreItem) Data()interface{} {
    return s.data
}
data := TestData{
    Key: "TestData",
}

item := TemporaryStoreItem{
    key:     "item1",
    data:    data,
    aliveUntil: time.Now(),
}
oldItem := item.Data()
fmt.Println(oldItem)