Я пытаюсь обвести голову вокруг типов и интерфейсов Голанга, но я немного борюсь за это. В любом случае, общий шаблон, который я вижу, - func Whatever() (thing string, err error)
. Я понимаю, как все это работает, но единственное, с чем я смущен, - это то, что это нормально, return "thing", nil
. Конкретный пример, который я смотрю в Ревеле здесь-Golang return nil
func (c *GorpController) Begin() revel.Result {
txn, err := Dbm.Begin()
if err != nil {
panic(err)
}
c.Txn = txn
return nil
}
revel.Result
интерфейс с этим signature-
type Result interface {
Apply(req *Request, resp *Response)
}
В любом случае, я просто любопытно, как возвращение nil
удовлетворяет компилятор в этом случае , Есть ли для этого ресурс, на который можно обратить внимание?
Perfect информация. Большое спасибо за это. Go - один из тех языков, который одновременно является самым легким и сложным языком, который я когда-либо изучал. –
@BrandonHansen для получения дополнительной информации о интерфейсе: http://stackoverflow.com/a/23148998/6309. – VonC