方法
声明
func (t T) F() {}简单例子
package main
type T struct{}
func (t T) F() {}
func main() {
t := T{}
t.F()
}接收者类型不是任意类型
命名冲突
接收者可以同时为值和指针
值和指针作为接收者的区别
最后更新于
package main
func (t int64) F() {}
func main() {
t := int64(10)
t.F()
}package main
type T int64
func (t T) F() {}
func main() {
t := T(10)
t.F()
}package main
type T struct{}
func (T) F() {}
func (T) F(a string) {}
func main() {
t := T{}
t.F()
}package main
type T struct{
F string
}
func (T) F(){}
func main() {
t := T{}
t.F()
}package main
type T struct{}
func (T) F() {}
func (*T) N() {}
func main() {
t := T{}
t.F()
t.N()
t1 := &T{} // 指针类型
t1.F()
t1.N()
}package main
import "fmt"
type T struct {
value int
}
func (m T) StayTheSame() {
m.value = 3
}
func (m *T) Update() {
m.value = 3
}
func main() {
m := T{0}
fmt.Println(m) // {0}
m.StayTheSame()
fmt.Println(m) // {0}
m.Update()
fmt.Println(m) // {3}
}{0}
{0}
{3}