英文:
golang too many arguments to return
问题
当我将一个函数赋值给变量并尝试调用它时,会抛出一个错误"返回的参数太多"。
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)
}
当你运行这段代码时,会出现错误。错误的原因是在将函数赋值给full_name
变量时,函数体内使用了return
关键字,但是匿名函数并不需要返回值。所以,你可以将函数体内的return
语句删除,代码如下:
package main
import "fmt"
func main() {
first_name := "Hello"
last_name := "World!"
full_name := func() {
fmt.Println(first_name)
}
fmt.Println(first_name)
fmt.Println(last_name)
full_name()
}
这样修改后,代码就可以正常运行了。
英文:
When I assign a function to variable and try to invoke it . It throws an error 'too many arguments to return'
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)
}
答案1
得分: 5
你需要将函数定义更改为以下内容:
full_name := func() string {
return first_name
}
这样你就告诉Go语言你打算从函数中返回一些内容,以及这个内容是什么(在这种情况下是一个字符串)。
然后稍后你可以像这样调用你新创建的函数:
fmt.Println(full_name())
英文:
You need to change your function definition to the following:
full_name := func() string {
return first_name
}
That's how you tell Go that you intend to return something from a function and what that something is (a string in this case).
Then later you should call your newly created function like this:
fmt.Println(full_name())
答案2
得分: 1
你没有正确声明你的函数。
full_name := func() string{ // 添加返回类型
return first_name
}
即使是匿名函数,参数和返回值也必须声明。由于你没有指定任何返回值,所以不能使用 return xx
。
另外,请注意 fmt.Println(full_name)
将返回函数的地址,而不是执行函数。请尝试使用 fmt.Println(full_name())
。
英文:
You didn't declare your function correctly.
full_name := func() string{ // add a return type
return first_name
}
Even for an anonymous function, arguments and return values must be declared. Since you did not specify any return value, you cannot use return xx
.
Also, be aware that fmt.Println(full_name)
will return the address of the function, not execute the function. Try fmt.Println(full_name())
instead.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论