- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在包 goQA 中定义了一个简单的接口(interface),并将它与实现该接口(interface)的结构一起使用:
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) {
}
然后我可以在示例文件中创建一个变量,一切正常:
var mr goQA.ReportWriter
mr = &goQA.MongoReporter{}
将结构移动到它自己的包 mongo 并导入 goQA 包时出现问题。一切都一样,除了使用包名:
type MongoReporter struct {
}
func (t *MongoReporter) Name() string {
}
func (t *MongoReporter) Init(parent goQA.ITestManager) {
}
func (t *MongoReporter) onManagerStatistics(report *goQA.ManagerResult, stats *goQA.ReporterStatistics, name, msg string) {
}
我尝试像以前一样在示例程序中使用结构:
var mr goQA.ReportWriter
mr = &mongo.MongoReporter{}
出现错误信息:
""""examples\example_mongo1.go:108: 不能在赋值中使用 mongo.MongoReporter 文字(类型 *mongo.MongoReporter)作为 oQA.ReportWriter 类型: *mongo.MongoReporter 没有实现 goQA.ReportWriter(缺少 goQA.onManagerStatistics 方法)有 mongo.onManagerStatistics(*goQA.ManagerResult, *goQA.ReporterStatistics, string, string) 想要 goQA.onManagerStatistics(*goQA.ManagerResult, *goQA.ReporterStatistics, string, string)""""
为什么它说“有 mongo.onManagerStatistics 但想要 goQA.onManagerStatistics?”签名不一样?为什么不提示 Init() 和 Name() 方法?
将 Name() 字符串方法更改为 Name(i int) 字符串后,错误是
有 Name(int) 字符串 想要 Name() 字符串
没说:
有 mongo.Name(int) 字符串 想要 goQA.Name() 字符串
我不明白这里的错误是什么。看起来不像是实现接口(interface)时的简单错误。
最佳答案
包 B 如何提供一个类型来满足包 A 的接口(interface),而 A 具有未导出的方法?确切地说:不能。您必须使用大写 O 导出 onManagerStatistics
。
关于在一个包中定义的接口(interface)在不同的包中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23277395/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!