我正在阅读此代码,我不太清楚#2行是什么:
resp := route.Handler(req)
_, nilresponse := resp.(NilResponse)
if !nilresponse {
type NilResponse struct {
}
谢谢
答案 0 :(得分:1)
这不是一个空函数名。这是一种类型断言。正在测试resp
是NilResponse
。如果是,那么nilResponse
将为真,否则将为假。此代码使用_
抛弃了生成的类型声明值。
请参阅Type Assertions。
答案 1 :(得分:0)
如果第二行是_, nilresponse := resp.(NilResponse)
那么它根本不是一个函数调用。这是一种类型断言。代码说“resp
表示的界面值属于NilResponse
类型。
EDIT;你的任务有点奇怪,因为第一个返回值是NilResponse
对象,第二个(如果指定)是一个标志,表明它是否有效(或者可能是一个错误,不记得它是否是bool或错误)。所以通常它会是这样的; nilResponse, ok :=
或nilResponse, err :=