【问题标题】:How to store a struct inside a struct in go?go - 如何在结构中存储结构?
【发布时间】:2012-11-25 11:14:56
【问题描述】:

我有两个结构(NewDailyPrediction),DailyPrediction 结构是New 结构的实体之一:

type New struct {
    Id string
    DailyPrediction
}

type DailyPrediction struct {
    Prediction string
}

我无法读取(或)写入数据存储区中的新结构。如果有人可以帮助我,那将很有帮助。

【问题讨论】:

  • 数据存储?可能是 App Engine 数据存储区?如果是这样,将有助于标记问题 google-app-engine 或 gae-datastore。
  • 我删除了 app-engine 标签,因为这个问题似乎与 app engine 没有直接关系。也许我看错了问题?

标签: google-app-engine struct go


【解决方案1】:

从你的问题中我不清楚你到底在用结构做什么,以及它以什么方式失败。但是,当您通过不给它命名来将 DailyPrediction 结构嵌入到新结构中时,它仍然需要初始化。您可以在此处查看如何执行此操作的详细信息: http://golang.org/doc/effective_go.html#embedding

例如,为了初始化你的新结构,你可以使用这样的一行:

    n := New{"foo", DailyPrediction{"bar"}}

这就是缺少的东西吗?

【讨论】:

  • 非常感谢...我在发布的问题中不清楚。我实际上是在创建这个结构来创建一个 Json 并将其保存在数据存储中。 Json 结构应该是这样的 {"Id":"20122403","Dailypred":{"Prediction":"ABCD"}}。读取 Json 时的问题是它会引发错误 - “SAVE datastore: unsupported struct field type: pcg_new.DailyPrediction”..please help on this
  • 我刚刚做了以下操作:var jsonBlob = []byte({"Id": "meemaw", "Prediction": "Moonpie"}),并且成功解组到我创建的结构中,其中 DailyPrediction 结构包含字符串 Prediction。这就是你要找的吗?
  • 没关系,我发现问题不是让 json 读取它,而是 appEngine 来存储它。听起来@alphazero 的答案更相关,这是不支持的。
【解决方案2】:

Not supported 由应用引擎提供。

【讨论】:

  • 它是应用引擎支持的,从某种意义上说你可以自己做,库不关心它。您需要实现接口并将其展平。
【解决方案3】:

只是为了为未来的读者更新这篇文章......这个信息是旧的......现在支持嵌套结构

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 2016-02-13
    相关资源
    最近更新 更多