我正在尝试编写一个工作示例来测试this link的“参考类型”部分。
但我无法理解这应该如何运作。下面提供了我试图写的没有成功的例子,仅供参考:
package main
import (
"fmt"
"log"
"encoding/json"
)
type Foo1 struct {
Val int
}
type Foo2 struct {
Name string
}
type IncomingMsg struct {
F1 *Foo1
F2 *Foo2
}
func main() {
b := []byte(`{"F1" : {"Val":13}}`)
// b := []byte(`{"F2" : {"Name":"Hello"}}`)
var msg IncomingMsg
err := json.Unmarshal(b, &msg)
if err != nil {
log.Fatal(err)
}
if msg.F1 != nil {
fmt.Println(msg.F1.Val)
}
if msg.F2 != nil {
fmt.Println(msg.F2.Name)
}
}
你们中有些人有更多Go经验可以帮助解决这个问题吗?
编辑:提供的测试已更新,现在正按预期工作。感谢Adam先生提供的答案,它帮助我理解了这个问题! :)
答案 0 :(得分:3)