你为什么有时会在parens中有一个返回值,但有时候不是Go函数签名?

zer*_*ool -2 go

我注意到Go函数签名有时在括号中有返回值,有时则没有.这只是一个品味的问题,还是选择一个比另一个更深刻的含义.

我已经浏览了go文档,并在博客文章中的规范等,并没有找到任何结论来回答这个问题.大多数功能签名定义我都遇到了这一点,这就是为什么我认为答案是微妙的.

  func Example(num int) (error){
    ..
  }

  func Example(num int) error {
    ..  
  }
Run Code Online (Sandbox Code Playgroud)

dto*_*nay 5

如果函数有一个返回值,则表示带括号或不带括号的相同内容.没有括号通常是优选的.

如果函数有多个返回值,则需要括号.

func Example() (string, error) {
    return "", nil
}
Run Code Online (Sandbox Code Playgroud)

如果有命名的返回值,则还需要括号.

func Example() (s string) {
    s = ""
    return
}
Run Code Online (Sandbox Code Playgroud)