type A struct {
name string
}
func (a A) Name() string {
a.name = "a"
return a.name
}
func main() {
a:= A{name:"aaa"}
//Calling method:
fmt.Println(a.Name())
//Value transfer, value copy (non-syntactic sugar)
fmt.Println(A.Name(a))
}
type A struct {
name string
}
func (a *A) Name() string {
a.name = "a"
return a.name
}
func main() {
a:= &A{name:"aaa"}
//Calling method: the receiver of the corresponding operation
fmt.Println(a.Name())
//Value transfer, pointer address copy (non-syntactic sugar)
fmt.Println( (*A).Name(a))
}
a.Name() is converted to (*a).Name()
Syntax sugar conversion occurs at compile time.