我注意到Go函数签名有时在括号中有返回值,有时则没有。 这只是一个品味的问题,还是选择一个比另一个更深刻的含义。
我查看了go文档,并在博客文章中的规范等,并没有找到任何结论来回答这个问题。大多数功能签名定义在这一点上我都遇到了光泽,这就是为什么我认为答案是微妙的。
func Example(num int) (error){
..
}
func Example(num int) error {
..
}
答案 0 :(得分:5)
如果函数有一个返回值,则表示带括号或不带括号的相同内容。没有括号通常是首选。
如果函数有多个返回值,则需要括号。
func Example() (string, error) {
return "", nil
}
如果有命名的返回值,则还需要括号。
func Example() (s string) {
s = ""
return
}