不能在字段值中将(* struct)用作(* interface)

我有以下代码:


// eventloop.go

type Object interface {

    ActivateSlot(name string, parameters vector.Vector);

}




// main.go

import loop "./eventloop"


// ...


const slotname = "printer"


type printer struct {

    slot loop.Slot;

}


func (p *printer) Init() {

    p.slot = loop.Slot{slotname, p}; // offending line

}


func (p *printer) ActivateSlot(name string, parameters vector.Vector) {

    fmt.Println("Slot called: ", name); 

}

当我尝试编译时,出现以下错误:


jurily@jurily ~/workspace/go $ ./build.sh

main.go:23: cannot use p (type *printer) as type *eventloop.Object in field value

如果我将有问题的行注释掉,它可以编译并运行良好。这里发生了什么事?我想念什么?


MYYA
浏览 228回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go