首页 > 百科知识 正文

七爪源码Go中的,go并发编程源码

时间:2023-12-10 18:00:01 阅读:971 作者:路哭情

在这个故事中,我想分享我在编组 Json 结构时使用 Go 的经验之一。

七爪源码Go中的,go并发编程源码-第1张

package mainimport ( "encoding/json" "log" )type car struct { name string `json:"name"` color string `json:"color"` seats int `json:"seats"` }func main() { c := car{name: "toyota", color: "white", seats: 5} byteArray, err := json.Marshal(c) if err != nil { log.Println(err) }log.Println(string(byteArray))}

在上面的代码片段中,我们使用了一个名为 car 的结构类型。 在这里,我们尝试对结构进行编组并从 Marshal 函数打印输出 byteArray 的字符串类型。 通过这样做,我们可以确认我们检索到的数据与我们尝试编组的数据相同。

当我们运行这个程序时,我们看到的结果不是我们试图编组的结果。

输出: {}

这是因为我们传递给 Marshal 函数的结构字段是未导出的。 Marshal 函数无法访问导致上述输出的未导出字段。

现在这一次我们可以尝试通过导出结构中的一些字段,如下所示

package mainimport ( "encoding/json" "log" )type car struct { Name string `json:"name"` Color string `json:"color"` seats int `json:"seats"` }func main() { c := car{Name: "toyota", Color: "white", seats: 5} byteArray, err := json.Marshal(c) if err != nil { log.Println(err) }log.Println(string(byteArray))}

在上面的代码片段中,我们导出了 Name 和 Color 字段,这导致了以下输出

输出:{“name”:”toyota”,”color”:”white”}

我们可以从上面的输出中观察到,只有导出的字段才能被 Marshalling 函数访问。

因此,我们需要确保我们传递给 Marshal 函数的字段应该被导出,如果不是那些外部包无法访问的字段。

感谢您的阅读! 如果您喜欢这个,请关注并订阅我的个人资料以获取更多故事

关注七爪网,获取更多APP/小程序/网站源码资源!

版权声明:该问答观点仅代表作者本人。如有侵犯您版权权利请告知 cpumjj@hotmail.com,我们将尽快删除相关内容。