struct数组修改结构体值:
// 11111111 project 11111111.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("%+v\n", szBid[0])
fmt.Printf("%+v\n", szBid[1])
}