goalng 通过指针对值进行修改(结构体类型)&向切片类型的结构体追加值

值类型进行修改

值类型对值修改无效

package main

import (
	"fmt"
)

type message struct {
	name string
	age  int
	sex string
}

func main() {
	ret :=[]message{
		{ "小李", 18, "男"},
		{ "小李2", 18, "男"},
		{ "小李2", 18, "男"},
	}

	for _,ret1 :=range ret{
		ret1.name="小刚"
	}
	fmt.Println("ret",ret[0],ret[1],ret[2])
}

输出

ret {小李 18} {小李2 18} {小李2 18}

指针类型

栗1:

> 通过指针类型可以对值直接进行修改
```go
package main

import (
	"fmt"
)

type message struct {
	name string
	age  int
	sex string
}

func main() {
	ret :=[]*message{
		{ "小李", 18, "男"},
		{ "小李2", 18, "男"},
		{ "小李2", 18, "男"},
	}

	for _,ret1 :=range ret{
		ret1.name="小刚"
	}
	fmt.Println("ret",ret[0],ret[1],ret[2])
}

输出

ret &{小刚 18} &{小刚 18} &{小刚 18}
栗2:
package main

import (
	"fmt"
)

type message struct {
	name string
	age  int
	sex string
}

func main() {
	ret :=[]*message{}

	m := &message{ "小李", 18, "男"}
	m1 := &message{ "小李2", 18, "男"}
	m2 := &message{ "小李3", 18, "男"}

	ret =append(ret,m,m2,m1)
	for _,ret1 :=range ret{
		ret1.name="小刚"
	}
	fmt.Println("ret",ret[0],ret[1],ret[2])
}

输出

ret &{小刚 18} &{小刚 18} &{小刚 18}
package main

import (
	"fmt"
)

type message struct {
	name string
	age  int
	sex string
}

func main() {
	ret :=[]*message{}


	ret =append(ret,&message{ "小李", 18, "男"})
	ret =append(ret,&message{ "小李2", 18, "男"})
	ret =append(ret,&message{ "小李3", 18, "男"})
	fmt.Println("ret1",ret)
	for _,ret1 :=range ret{
		ret1.name="小刚"
	}
	fmt.Println("ret",ret[0],ret[1],ret[2])
}
ret1 [0xc000062330 0xc000062360 0xc000062390]
ret &{小刚 18} &{小刚 18} &{小刚 18}
未完待续~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值