加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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])
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读