在以下代码段中,尝试将 nil 接口转换为某事物的指针失败并出现以下错误: interface conversion: interface is nil, not *main.Node
type Nexter interface {
Next() Nexter
}
type Node struct {
next Nexter
}
func (n *Node) Next() Nexter {...}
func main() {
var p Nexter
var n *Node
fmt.Println(n == nil) // will print true
n = p.(*Node) // will fail
}
播放链接在这里:https : //play.golang.org/p/2cgyfUStCI
为什么这会失败?完全有可能做到
n = (*Node)(nil)
,所以我想知道如何从 nil 界面开始实现类似的效果。
阿波罗的战车
相关分类