我正在努力学习Golang的类型和接口,但是有些困难。无论如何,我经常看到的一种模式是func Whatever() (thing string, err error)
。 我理解所有这些内容,但是唯一困惑的是为什么可以return "thing", nil
。我正在查看的具体实例在revel中 -
func (c *GorpController) Begin() revel.Result {
txn, err := Dbm.Begin()
if err != nil {
panic(err)
}
c.Txn = txn
return nil
}
revel.Result
是一个具有以下签名的接口 -
type Result interface {
Apply(req *Request, resp *Response)
}
无论如何,我只是好奇返回nil
如何满足编译器在那种情况下的要求。有没有资源可以指向我看看?