我在 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) 我基本上剪切并粘贴了这个例子来从这个链接创建一个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)
我在这里做错了什么从根本上说是荒谬的?
谢谢