例如,讓我們以這個結構為例
var input struct {
Title *string `json:"title"`
Year *int32 `json:"year"`
Runtime *data.Runtime `json:"runtime"`
Genres []string `json:"genres"`
}
我的目的是在解碼 JSON 值時使用這樣的指標值。但我的問題是,當我們在輸入欄位中存盤指向字串的指標(對于 ex)input.Title
時,該指標的基礎值存盤在哪里?它只是隨機存盤在某個記憶體地址中?或者幕后實際發生了什么
uj5u.com熱心網友回復:
JSON 解碼器呼叫reflect.New以獲取指向新的空字串值的指標。解碼器將值設定為解碼后的字串,并將結構欄位設定為指標。
reflect.New 函式呼叫私有運行時函式來為該值分配堆記憶體。該函式回傳一個指向該記憶體的指標。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/506452.html
下一篇:c#記憶體池有什么意義?[復制]