type I interface {
name()
}
type S struct{}
func (*S) name() {
}
func TestInterface(t *testing.T) {
var value I = &S{}
value.name() //可以调用
var point = &value
point.name() //不能调用
}
type I interface {
name()
}
type S struct{}
func (*S) name() {
}
func TestInterface(t *testing.T) {
var value I = &S{}
value.name() //可以调用
var point = &value
point.name() //不能调用
}
(*point).name()
这样就行。
&符号的意思是对变量取地址,如:变量a的地址是&a
*符号的意思是对指针取值,如:*&a,就是a变量所在地址的值,当然也就是a的值了
7 回答5.6k 阅读
6 回答7.1k 阅读✓ 已解决
4 回答2.5k 阅读
2 回答1k 阅读✓ 已解决
1 回答2.3k 阅读
2 回答1k 阅读
1 回答1k 阅读
你是抽象了一个interface. 需要其他的数据结构来实现I 下面的方法。并不是直接调用I下面的方法。
你那有调用value.name 应该会报错的。