golang有太多的论据要归还

时间:2016-04-14 05:27:59

标签: go

当我将一个函数赋给变量并尝试调用它时。它会引发一个错误,即返回'

的参数太多
package main

import "fmt"

func main() {
  first_name := "Hello"
  last_name := "World!"
  full_name := func() {
    return first_name
  }
  fmt.Println(first_name)
  fmt.Println(last_name)
  fmt.Println(full_name)
}

2 个答案:

答案 0 :(得分:3)

您需要将功能定义更改为以下内容:

  full_name := func() string {
    return first_name
  }

你是怎么告诉Go你打算从函数中返回一些东西以及那是什么东西(在这种情况下是一个字符串)。

之后您应该像这样调用新创建的函数:

   fmt.Println(full_name())

答案 1 :(得分:1)

你没有正确宣布你的功能。

full_name := func() string{ // add a return type
   return first_name
}

即使是匿名函数,也必须声明参数和返回值。由于您未指定任何返回值,因此无法使用return xx

另外,请注意fmt.Println(full_name)将返回函数的地址,而不是执行函数。请改为fmt.Println(full_name())

相关问题