您的位置:首页 > 编程语言 > Go语言

Go 方法的receiver和*receiver的区别

2017-06-22 10:21 260 查看
package main

import (
"fmt"
)

type Person struct {
Name string
}

func (p *Person) SetName1() {
p.Name = "chf1"

}

func (p Person) SetName2() {
p.Name = "chf2"

}

func main() {
p1 := &Person{Name: "test1"}
fmt.Println("name1 : " + p1.Name)
p1.SetName1()
fmt.Println("name2 : " + p1.Name)

p2 := Person{Name: "test2"}
fmt.Println("name3: " + p2.Name)
p2.SetName2() //值拷贝
fmt.Println("name4 : " + p2.Name)

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: