英文:
Return 1 value to the function with multiple return values in golang
问题
我想要将多个返回值的函数只返回一个值。
我尝试了以下代码:
func myFunc() (int, int){
return _, 3
}
但是它没有起作用,并且报错:无法使用_作为值。
我已经知道可以接收其中一个返回值。
有没有办法只返回一个值?
英文:
I want to return just 1 value to the function with multiple return values.
I tried this:
func myFunc() (int, int){
return _, 3
}
But it didn't work and raised this error: cannot use _ as value
I already know that It's possible to receive one of the returned values.
Is there any way to return just 1 value?
答案1
得分: 2
对于其他返回参数,可以使用零值:
func myFunc() (int, int){
return 0, 3
}
如果使用命名返回值参数,也可以这样做:
func myFunc() (x, y int){
y = 3
return
}
在这种情况下,x
也将是其类型的零值,在int
的情况下为0
。
你还可以编写一个辅助函数,添加一个虚拟的返回值,例如:
func myFunc() (int, int) {
return extend(3)
}
func extend(i int) (int, int) {
return 0, i
}
但个人认为这不值得。对于“未使用”的返回参数,只需返回零值即可。
英文:
Use the zero value for the other return parameters:
func myFunc() (int, int){
return 0, 3
}
If you use named result parameters, you may also do:
func myFunc() (x, y int){
y = 3
return
}
In this case x
will also be the zero value of its type, 0
in case of int
.
You could also write a helper function which adds a dummy return value, e.g.:
func myFunc() (int, int) {
return extend(3)
}
func extend(i int) (int, int) {
return 0, i
}
But personally I don't think it's worth it. Just return the zero value for "unused" return parameters.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论