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