在 golang func 中使用默认值

Ama*_*ari 0 default-value go

我正在尝试根据Golang 和 default values帖子的选项 1 实现默认值。但是当我尝试go install在终端中执行以下错误时:

not enough arguments in call to test.Concat1
    have ()
    want (string)
Run Code Online (Sandbox Code Playgroud)

代码:

package test

func Concat1(a string) string {
  if a == "" {
    a = "default-a"
  }
  return fmt.Sprintf("%s", a)
}
Run Code Online (Sandbox Code Playgroud)

// 其他包

package main

func main() {
  test.Concat1()
}
Run Code Online (Sandbox Code Playgroud)

提前致谢。

jwe*_*313 5

我不认为你正在尝试做的事情会这样。您可能希望从您引用的页面中选择选项 #4,该选项使用可变参数。在你的情况下,在我看来你只想要一个字符串,所以它会是这样的:

func Concat1(a ...string) string {
  if len(a) == 0 {
    return "a-default"
  }
  return a[0]
}
Run Code Online (Sandbox Code Playgroud)