現(xiàn)在我正在學(xué)習(xí) Go,這是我第一次接觸指針。但這有點(diǎn)棘手,我開始懷疑我做的對(duì)還是錯(cuò)。標(biāo)題是我最好的猜測(cè),試圖用外語(yǔ)解釋我想做的事情,所以如果不清楚,我可以嘗試用不同的方式解釋。這是代碼的簡(jiǎn)化示例: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}]}]但我實(shí)際上想要得到的是:true &{Campinas}[{SP [{S?o Paulo} {Campinas}]}]那么,我在這里做錯(cuò)了什么?
1 回答

嗶嗶one
TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
該函數(shù)返回局部變量的地址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 關(guān)注
- 121 瀏覽
添加回答
舉報(bào)
0/150
提交
取消