3 回答

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
我想談?wù)勀愕牡诙€(gè)代碼塊:
val := ... //Assign a reflect.Value to it
nextval := val.Field(0) //Make sure that Field exists and is of type map
nextval = reflect.MakeMap(reflect.MapOf(KEY, ELEM))
nextval.SetMapIndex(Some_value_of_type_KEY, Something_of_type_ELEM)
fmt.Println(nextval.MapKeys()
fmt.Println(val.Field(index).MapKeys())
在第三行,您將一個(gè)新的、不同的對(duì)象重新分配給變量nextval。你不應(yīng)該在 nextval 上調(diào)用某種設(shè)置方法而不是重新分配它嗎?在您的第一個(gè)示例中,您調(diào)用了SetString但在本示例中您只是重新分配了變量,這可能就是行為不同的原因。重新分配變量后,nextval將不再以任何方式連接到val.Field(0). 另外,什么是index?
如果這不能解釋您的問題,請(qǐng)編輯問題以包含一個(gè)簡短的、獨(dú)立的、正確的、可編譯的示例 ( SSCCE )。我希望能夠?qū)⑵浒l(fā)布到golang.org首頁的文本框中以便查看問題。如果可能,您應(yīng)該始終發(fā)布 SSCCE。

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
您尚未展示完整且可編譯的代碼。你是傳遞一個(gè)指向結(jié)構(gòu)的指針還是按值傳遞結(jié)構(gòu)?在后一種情況下,反射不能改變它。
- 3 回答
- 0 關(guān)注
- 215 瀏覽
添加回答
舉報(bào)