指針結構體

http://www.javashuo.com/article/p-zhzvgydt-p.htmlpost

  • 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)
    
    }
相關文章
相關標籤/搜索