小编gig*_*lis的帖子

在一个包中定义的接口在不同的包中不起作用

我在 goQA 包中定义了一个简单的接口,并将其与实现该接口的结构体一起使用:

type ReportWriter interface {
    Name() string
    Init(parent ITestManager)
    onManagerStatistics(report *ManagerResult, stats *ReporterStatistics, name, msg string)
}


type MongoReporter struct {
}

func (t *MongoReporter) Name() string {
}

func (t *MongoReporter) Init(parent ITestManager) {
}

func (t *MongoReporter) onManagerStatistics(report *ManagerResult, stats *ReporterStatistics, name, msg string) {
}
Run Code Online (Sandbox Code Playgroud)

然后我可以在示例文件中创建一个变量,一切正常:

var mr goQA.ReportWriter
mr = &goQA.MongoReporter{}
Run Code Online (Sandbox Code Playgroud)

当将结构移动到它自己的包 mongo 并导入 goQA 包时,问题就出现了。除了使用包名称之外,一切都相同:

type MongoReporter struct {
}

func (t *MongoReporter) Name() string {
}

func (t *MongoReporter) Init(parent goQA.ITestManager) { …
Run Code Online (Sandbox Code Playgroud)

interface go

1
推荐指数
1
解决办法
545
查看次数

HTTP服务器仅从浏览器提供"/"

我基本上剪切并粘贴了这个例子来从这个链接创建一个Web服务器:http: //thenewstack.io/building-a-web-server-in-go/

在这里发布代码:http: //play.golang.org/p/RvEr7E-v9q

我运行服务器并放入浏览器"localhost:8080",这hello(w,r)将按预期调用处理程序.当从浏览器"localhost/stuff:8080"尝试时,它甚至没有调用ServeHTTP(w http.ResponseWriter, r *http.Request)

我在这里做错了什么从根本上说是荒谬的?

谢谢

go

0
推荐指数
1
解决办法
56
查看次数

标签 统计

go ×2

interface ×1