【发布时间】:2020-01-03 06:14:53
【问题描述】:
我刚刚在 Go 中尝试了以下代码。
package main
type inter interface {
aaa() int
}
type impl struct {
inter
}
func main() {
var a inter
a = impl{}
// how to check the function for interface `inter` is not realized?
a.aaa()
}
可以是go build 和go run。但会收到如下恐慌:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0xffffffff addr=0x0 pc=0x8972c]
goroutine 1 [running]:
main.(*impl).aaa(0x40c018, 0x41a788, 0xb2ae0, 0x40c018)
<autogenerated>:1 +0x2c
main.main()
/tmp/sandbox029518300/prog.go:15 +0x60
我怎么知道a.aaa()没有实现。
【问题讨论】:
-
但是
a的类型是inter。它没有属性inter。