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

时间:2018-03-01 06:34:20

标签: go

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

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

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

  func Example(num int) error {
    ..  
  }

1 个答案:

答案 0 :(得分:5)

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

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

func Example() (string, error) {
    return "", nil
}

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

func Example() (s string) {
    s = ""
    return
}