golang修改struct数组问题
发布时间:2020-12-16 18:04:41 所属栏目:大数据 来源:网络整理
导读:struct数组修改结构体值: // 22222111 project 22222111.gopackage mainimport ("fmt")type Bid struct {CRID stringImpID string}func main() {bid1 := Bid{CRID: "222",ImpID: "aaa",}bid2 := Bid{CRID: "111",ImpID: "bbb",}//方法1:赋给一个新的对象var
struct数组修改结构体值: // 22222111 project 22222111.go package main import ( "fmt" ) type Bid struct { CRID string ImpID string } func main() { bid1 := Bid{ CRID: "222",ImpID: "aaa",} bid2 := Bid{ CRID: "111",ImpID: "bbb",} //方法1:赋给一个新的对象 var szBid []Bid szBid = append(szBid,bid1) szBid = append(szBid,bid2) szValidBid := []Bid{} for _,singleBid := range szBid { singleBid.CRID = "dddd" szValidBid = append(szValidBid,singleBid) } fmt.Println(szValidBid) //方法2 var szBid1 []Bid szBid1 = append(szBid1,bid1) szBid1 = append(szBid1,bid2) for i,singleBid := range szBid1 { singleBid.CRID = "dddd" szBid1[i] = singleBid } fmt.Println(szBid1) //错误方法,值不会改变,因为rangge给它赋给了一个新的对象 var szBid2 []Bid szBid2 = append(szBid2,bid1) szBid2 = append(szBid2,bid2) for _,singleBid := range szBid2 { singleBid.CRID = "dddd" } fmt.Println(szBid2) //test s := Bid{ CRID: "p",ImpID: "q",} fmt.Println(s) s.CRID = "pp" fmt.Println(s) } //struct指针数组修改结构体值 package main import ( "fmt" ) type Bid struct { CRID string ImpID string } func main() { var szBid []*Bid szBid = append(szBid,&Bid{CRID: "gui",ImpID: "gu"}) szBid = append(szBid,&Bid{CRID: "gui1",ImpID: "gu1"}) for _,singleBid := range szBid { singleBid.CRID = "dddd" } fmt.Printf("%+vn",szBid[0]) fmt.Printf("%+vn",szBid[1]) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |