go lang中的空函数名称是什么意思?

时间:2015-09-23 21:37:30

标签: syntax go

我正在阅读此代码,我不太清楚#2行是什么:

resp := route.Handler(req)
_, nilresponse := resp.(NilResponse)
if !nilresponse {

type NilResponse struct {
}

谢谢

2 个答案:

答案 0 :(得分:1)

这不是一个空函数名。这是一种类型断言。正在测试respNilResponse。如果是,那么nilResponse将为真,否则将为假。此代码使用_抛弃了生成的类型声明值。

请参阅Type Assertions

答案 1 :(得分:0)

如果第二行是_, nilresponse := resp.(NilResponse)那么它根本不是一个函数调用。这是一种类型断言。代码说“resp表示的界面值属于NilResponse类型。

EDIT;你的任务有点奇怪,因为第一个返回值是NilResponse对象,第二个(如果指定)是一个标志,表明它是否有效(或者可能是一个错误,不记得它是否是bool或错误)。所以通常它会是这样的; nilResponse, ok :=nilResponse, err :=