英文:
Erroring in serverHTTP but not in my code, why?
问题
第一段代码:http://play.golang.org/p/OEDetydMbW
第二段代码:http://play.golang.org/p/QZIrWALAm_
有人可以解释一下为什么第一段代码没有报错吗?我原本期望会出现一个错误,提示“缺少CreateTable方法”。
英文:
First code: http://play.golang.org/p/OEDetydMbW
Second code: http://play.golang.org/p/QZIrWALAm_
Can somebody explain me why I am not getting error on First code, I was expecting to error out stating missing CreateTable method
.
答案1
得分: 1
你指定了一个名为Abc
的接口,其中包含了方法CreateTable
,但是你的变量都没有实际上是Abc
接口类型的。
稍微修改一下的版本会引发你所寻找的错误:
http://play.golang.org/p/ETdexzPYaM
package main
import "log"
// Abc asdlkfjaslf as
type Abc interface {
CreateTable(a, b)
}
type a int
type b int
// Def klajsdlfkjaslfd
type Def int
// // CreateTable laksjdfljasfdl
// func (d *Def) CreateTable() {
// log.Println("inside Def CreateTable....")
// }
func main() {
var m1 Abc = Def(5)
log.Println("inside main %d", m1)
}
英文:
You specify an interface Abc
with the method CreateTable
but none of your variable are actually of type interface Abc
This slightly modified version will bring the error you seek:
http://play.golang.org/p/ETdexzPYaM
package main
import "log"
// Abc asdlkfjaslf as
type Abc interface {
CreateTable(a, b)
}
type a int
type b int
// Def klajsdlfkjaslfd
type Def int
// // CreateTable laksjdfljasfdl
// func (d *Def) CreateTable() {
// log.Println("inside Def CreateTable....")
// }
func main() {
var m1 Abc = Def(5)
log.Println("inside main %d", m1)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论