- package main
- import “fmt”
- type Per struct {
- name string
- age int
- sex string
- address string
- }
- func main(){
- var p Per
- p.name = “小花”
- p.age = 20
- p.sex = “女”
- p.address = “山东省”
- fmt.Printf(“姓名:%s, 年龄:%d,性别:%s, 地址:%s\n”, p.name,p.age,p.sex,p.address)
- //深拷贝 : 不会改变原值
- p7 := p
- p7.name=“爱情”
- fmt.Println(p7)
- fmt.Printf(“p7的数据是:%T,%p\n”,p7,&p7)
- fmt.Println(p)
- fmt.Printf(“p的数据是:%T,%p\n”,p,&p)
- fmt.Println(“————————————“)
- //浅拷贝 : 用的地址所以会改变原值
- var pp1 *Per
- pp1 = &p
- fmt.Println(“asdasdas”,pp1)
- pp1.name = “忙码字”
- fmt.Println(p)
- fmt.Printf(“pp1的数据是:%T,%p,%p\n”,pp1,pp1)
- }
打印结果:
姓名:小花, 年龄:20,性别:女, 地址:山东省
{爱情 20 女 山东省}
p7的数据是:controller.Per,0xc0004f5100
{小花 20 女 山东省}
p的数据是:controller.Per,0xc0004f50c0
————————————
asdasdas &{小花 20 女 山东省}
{忙码字 20 女 山东省}
pp1的数据是:*controller.Per,0xc0004f50c0