method gets copy of struct



examples/method-gets-copy/method_gets_copy.go
package main

import "fmt"

type aPerson struct {
    name string
}

func (p aPerson) changeName(newName string) {
    fmt.Printf("Old name: %v\n", p.name)
    p.name = newName
    fmt.Printf("New name: %v\n", p.name)
}

func main() {
    joe := aPerson{name: "Joe"}
    fmt.Println(joe)
    joe.changeName("Jane")
    fmt.Println(joe)
}

{Joe}
Old name: Joe
New name: Jane
{Joe}