golang 修改 结构体切片的值

本文探讨了在Go语言中如何正确地修改结构体的值,特别是当涉及到指针和非指针操作时遇到的问题。通过一个具体的例子展示了在遍历结构体数组时,直接通过值来修改成员变量是无效的,必须使用指针才能成功更新。这个错误代码揭示了Go语言中结构体赋值的深层原理,对于理解和避免此类常见错误至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 补全产品信息, 产品名,产品价格
	var mallGoods []mall.MallGoods
	err = global.GVA_DB.Model(&mall.MallGoods{}).Where("id in ?", Ids).Find(&mallGoods).Error

	for _, val := range mallGoods {
		for k, valuein := range dataRes {
			if valuein.Pid == int(val.ID) {
				dataRes[k].Title = val.Title
				dataRes[k].Price = *val.Price

				// 错误代码
				//valuein.Title = val.Title
				//valuein.Price = *val.Price
				//fmt.Println(valuein.Price)
			}
		}
	}

踩坑, 用 结构体的key 去修改值,使用 value 修改值是改不了的 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值