鉴于此功能:
func (c *Firehose) PutRecord(input *PutRecordInput) (*PutRecordOutput, error) {
req, out := c.PutRecordRequest(input)
return out, req.Send()
}
我发现这个调用有效:
err, _ := svc.PutRecord(putRecordInput)
但是我仍然不清楚这在函数签名中意味着什么:
(*PutRecordOutput, error)
我的问题是,我是否可以通过返回行中指定的内容始终确定函数返回的内容,在本例中为:
return out, req.Send()
答案 0 :(得分:2)
函数签名的这一部分正是函数返回的内容。
(*PutRecordOutput, error)
因此,这个将返回一个指向PutRecordOutput
加error
的指针(如果没有错误,按惯例返回为nil
。)
如果查看函数的源代码,return
语句必须与之一致,这样才能帮助您了解返回值的构建方式。
但请注意,在某些情况下,您可以命名输出参数,例如:
(output *PutRecordOutput, err error)
在这种情况下,output
和err
将是函数内部的有效局部变量,您可能会看到如下的普通return语句:
return
请记住,人们会隐瞒地这样做:
return output, err