func (c *App) example() // c操作对象本身
func (c App) example() // c为局部变量,对其修改不影响对象的值
前者,是修改内存中引用的值,后者是一个副本(不影响原来的内存)
package main import ( "fmt" ) type App struct{ Name string Num int } func (c *App)getName(){ c.Name = "myname" } func (c App)getNum()App{ c.Num = 11 return c } func main() { app := &App{} app.getName() app2 := app.getNum() fmt.Println(app,app2) } /* app: &{myname 0} app2: {myname 11} */