現在我正在學習 Go,這是我第一次接觸指針。但這有點棘手,我開始懷疑我做的對還是錯。標題是我最好的猜測,試圖用外語解釋我想做的事情,所以如果不清楚,我可以嘗試用不同的方式解釋。這是代碼的簡化示例:https ://play.golang.org/p/eultYp7Cq12func hasCity(element string, state *State) (bool, *City) { for _, city := range (*state).Cities { if (city.Name == element) { return true, &city } } return false, nil}如您所見,輸出是:true &{Campinas}[{SP [{S?o Paulo} {Barueri}]}]但我實際上想要得到的是:true &{Campinas}[{SP [{S?o Paulo} {Campinas}]}]那么,我在這里做錯了什么?
1 回答

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
該函數返回局部變量的地址cities。更改代碼以返回切片元素的地址:
func hasCity(element string, state *State) (bool, *City) {
for i, city := range state.Cities {
if city.Name == element {
return true, &state.Cities[i]
}
}
return false, nil
}
- 1 回答
- 0 關注
- 132 瀏覽
添加回答
舉報
0/150
提交
取消