golang修改struct数组问题

来源:互联网 发布:数据库工程师做什么 编辑:程序博客网 时间:2024/06/06 19:19
struct数组修改结构体值:
// 11111111 project 11111111.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 szBid []BidszBid = append(szBid, bid1)szBid = append(szBid, bid2)szValidBid := []Bid{}for _, singleBid := range szBid {singleBid.CRID = "dddd"szValidBid = append(szValidBid, singleBid)}fmt.Println(szValidBid)//方法2var szBid1 []BidszBid1 = append(szBid1, bid1)szBid1 = append(szBid1, bid2)for i, singleBid := range szBid1 {singleBid.CRID = "dddd"szBid1[i] = singleBid}fmt.Println(szBid1)//错误方法,值不会改变,因为rangge给它赋给了一个新的对象var szBid2 []BidszBid2 = append(szBid2, bid1)szBid2 = append(szBid2, bid2)for _, singleBid := range szBid2 {singleBid.CRID = "dddd"}fmt.Println(szBid2)//tests := Bid{CRID:  "p",ImpID: "q",}fmt.Println(s)s.CRID = "pp"fmt.Println(s)}
//struct指针数组修改结构体值
package mainimport (    "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("%+v\n", szBid[0])    fmt.Printf("%+v\n", szBid[1])}


 
原创粉丝点击