值类型进行修改
值类型对值修改无效
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 男}