等价转换公式

定义结构体如下

type T struct{
    a int
}

receiver为结构体本身的方法及其等价转换后的方法为

func(t T)Get()int{
    return t.a
}

// 等价于
func Get(t T)int{
  return t.a
}

类似的,receiver为结构体指针的方法及其等价转换后的方法为

func(t *T)Set(a int)int{
  t.a = a
    return t.a
}

// 等价于
func Set(t *T, a int)int{
  t.a = a
  return t.a
}

等价转后的函数,就是方法的原型

区别

  • 从转换后的方法原型,很容易看出,区别就在于方法内的结构体对象是副本还是通过指针拿到的原对象

参考

文章目录