type Addifier interface{ Add(a, b int32) int32 }
type Adder struct{ name string }
func (adder Adder) Add(a, b int32) int32 { return a + b }
type Adder2 struct{ name string }
func (adder *Adder2) Add(a, b int32) int32 { return a + b }
var _ *Addifier = (*Adder)(nil) //指针类型不匹配:Cannot use '(*Adder)(nil)'
(type *Adder) as the type *Addifier
var _ *Addifier = &Adder{} //指针类型不匹配:Cannot use '&Adder{}' (type *Ad
der) as the type *Addifier
var _ Addifier = (*Adder)(nil)
var _ Addifier = (Adder)(nil) //原因是nil,不是Adder;GoLand: Cannot convert
'nil' to the type 'Adder'
var _ Addifier = &Adder{} //
var _ Addifier = Adder{}
var _ Addifier = (*Adder2)(nil)
var _ Addifier = &Adder2{} //
var _ Addifier = Adder2{} //Goland: Type does not implement 'Addifier' as t
he 'Add' method has a pointer receiver
var _ Addifier = (Adder)(Adder2{}) //没提示错误,笔误写出来的,不知道实际运行
行不行
【 在 sumanwang (sumanwang) 的大作中提到: 】
: Addifier 是一个类型, *Addifier才是指针。
: 我的理解是
: var _ *Addifier = (*Adder)(nil)
: ...................
--
FROM 111.206.87.*