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)
}

返回值:
在这里插入图片描述