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

问题描述 投票:-2回答:1

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

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

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

  func Example(num int) error {
    ..  
  }
go
1个回答
5
投票

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

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

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

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

func Example() (s string) {
    s = ""
    return
}
© www.soinside.com 2019 - 2024. All rights reserved.