1.指针类型传递,可以达到修改变量值的目的。指针类型的拷贝是浅拷贝,拷贝后的值,指向的内存地址和原值的内存地址一样,修改其中一个值,这个内存地址上的值都会改变
2.值类型的拷贝是深度拷贝,会将给拷贝的值创建一个新的内存空间,存储值
package main
import "fmt"
// Test 测试结构体
type Test struct {
Name string
Num int
}
// getTestInfo_1 t操作对象本身 => 修改内存中引用的值
func (t *Test) getTestInfo_1() {
t.Name = "测试"
}
// getTestInfo_2 t为局部变量,对其修改不影响对象的值 => 一个副本(不影响原来的内存)
func (t Test) getTestInfo_2() Test {
t.Num = 2
return t
}
func main() {
test := &Test{}
test.getTestInfo_1()
test2 := test.getTestInfo_2()
fmt.Printf("Test1:%v, Test2:%v \n", test, test2)
}
返回值: