如何走到這一步的工作原理:爲什麼我無法使用反射來獲取切片的地址?
slice := make([]string, 0, 10)
sliceptr := &slice
這太:
sliceptr := &[]string{"foo","bar","baz"}
但這並不:
sliceaddrval := reflect.ValueOf([]string{"foo","bar","baz"}).Addr()
它與恐慌:reflect.Value.Addr of unaddressable value
編輯:總的來說,我想要做的是採取一個未知類型的結構,做出該類型的結構片,並返回一個指針(我使用github.com/jmoiron/modl,它需要一個指向切片的指針,用來填充來自SQL查詢的結果)。
實際上,認爲正確的答案是精神相似,但略有不同的(它是一個'接口{}'拿着值類型不能像指針一樣使用),編輯 – twotwotwo 2014-11-05 19:16:43
好的。你對片段標題的看法是有道理的,我想我只是不明白當你這樣做時指針指向的是什麼:&[] string {}或者說爲什麼似乎沒有與之相當的反射。 – 2014-11-05 19:23:08
我加了一點問題。基本上我正在尋找的是「爲X類型(一個」別人「提供的結構)創建一個空片段並獲取它的指針」,我需要它來收集查詢的結果。 – 2014-11-05 19:28:51