我正在嘗試使用通用例程處理特定組件之間的消息。其中一部分涉及讀取字節(jié)數(shù)組并使用 json.Marshal 和 json.Unmarshal 并調(diào)用回調(diào)。我試圖將接口傳遞給需要特定結(jié)構(gòu)的函數(shù),但我不知道目標(biāo)結(jié)構(gòu)的類型。在下面的代碼中,函數(shù) r() 如何調(diào)用函數(shù) cb() 并傳入正確的數(shù)據(jù)?package mainimport ( "encoding/json" "fmt" "reflect")type Bottom struct { Foo string}func cb(b *Bottom) { fmt.Println("5. ", b)}func r(t interface{}, buf []byte) { _ = json.Unmarshal(buf, &t) fmt.Println("2. ", reflect.TypeOf(t)) fmt.Println("3. ", t) cb(&t)}func main() { x := Bottom{Foo: "blah"} var y Bottom buf, _ := json.Marshal(x) fmt.Println("1. ", x) r(&y, buf)}
- 1 回答
- 0 關(guān)注
- 197 瀏覽
添加回答
舉報
0/150
提交
取消