我是初學者。我在函數列表中創建了一個結構體的對象數組,並將該對象數組的地址傳遞給另一個函數changelist。在我的函數changelist中,我將它作爲pointer.I想要編輯該函數內傳遞的數組對象的一些字段更改列表並將其傳遞迴被調用的函數列表。當我嘗試在我調用的函數中訪問它時,我無法從更改列表函數訪問更新的版本。無法訪問在另一個函數中更改的結構體字段
Here is my code
type Mail struct {
Name string
Address string
Status bool
Error error
}
function List(){
var addressList = make([]Mail,2)
addressList[0].Name = "Name"
addressList[0].Address = "Address"
addressList[1].Name = "Name1"
addressList[1].Address = "Address"
newAddress:=changedlist(&addressList)
fmt.Println(newAddress)
}
function Changedlist(addressList *[]Mail)*[]Mail{
for _,r:=range *addressList{
if r.Name=="Name1"{
r.Status=false
r.err=errors.New("Error in the name")
continue
}
r.Status=true
r.Error=nil
}
return addressList
}
這裏我所期待的是名字,當我得到這個在我的列表中的狀態將成爲真正的function.But它是假的,其是bool.This的默認值是指變化不做到實際的數組struct.It是修改複製版本。可以有人請指出我在正確的方向如何實現這一目標..謝謝。
第一:通過圍棋的整體旅遊工作(HTTPS ://tour.golang.org/)。第二:不要使用指向切片的指針。第三。再去一趟。第四:for循環中的'r'是地址列表元素的副本:當變更片時,使用'for i:= range slice'。再次去旅行。 – Volker
我建議你在寫任何東西之前多閱讀一下語言規範 –
謝謝volker。我認爲你的建議幫助了我很多。將學習更多..感謝 –