指针结构体

China☆狼群 提交于 2020-08-11 20:22:02

https://juejin.im/post/5ca2f37ce51d4502a27f0539

  • type Member struct {
    	id          int
    	name, email string
    	gender, age int
    }
    
    func TestChange(t *testing.T) {
    	m1 := Member{}
    	m2 := new(Member)
    	Change(m1, m2)      //值传递,这里需要传指针才有效
    	fmt.Println(m1, m2) //{0   0 0} &{0 小红  0 0}
    }
    
    func Change(m1 Member, m2 *Member) {
    	m1.name = "小明"
    	m2.name = "小红"
    }
    
    func TestMember(t *testing.T) {
    	var m1 Member //所有字段均为空值
    	var m2 = &Member{}
    	var m3 = new(Member)
    	var m4 = &m1
    	m1.age = 12
    	m2.age = 13
    	m3.age = 14
    	m4.age = 145
    	t.Logf("%T %v", m1, m1.age)
    	t.Logf("%T %v", m2, m2.age)
    	t.Logf("%T %v", m3, m3.age)
    	t.Logf("%T %v", m4, m4.age)
    
    }

 

 

    标签
    易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
    该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!