import "fmt" type Per struct { // 自定义类型,底层是内置类型struct{} (UnNamed Type) name string } type myINt []string // 自定义类型,底层是内置类型struct{} (UnNamed Type) func (m myINt) myIntFun() { // myINt 值接收者 fmt.Println(m[0]) } func (p Per) Hello() { // Per 值接收者 fmt.Println("hello", p.name) } type T int // 自定义类型,底层是内置类型int (Named Type) func F(t T) {} func main() { var q int // int 内置类型变量 F(q) // F() 接受者是 自定义类型 T , q变量想成功调用F()即需要两个变量可以互相赋值(T&q),但是T类型的底层类型是Named Type,所以此处报错; p := Per{"casso"} // 变量p p.Hello() }