100 { _,w = 3,5 " />
登录
首页 >  Golang >  Go问答

返回值未定义为go类型

来源:stackoverflow

时间:2024-02-19 18:39:23 166浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《返回值未定义为go类型》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

下面的代码为什么没有发出警告?

$ cat ret.go
package main
import "fmt"
func foobar(x int, y int) (z, w int) {
    if x+y > 100 {
         _,w = 3,5
    } else {
        _,w = "MMM",9
    }
    return z,w
}

func main() {
    var x int
    _,x = foobar(42,13)
    fmt.Println(x)
}
$ go build -gcflags=-l ret.go

至少,go 编译器应该知道 z 的大小,对吧?


正确答案


在 golang 中,您可以在一行中定义多个变量,如下所示:

var identifier1, identifier2 type

所以,这里的 z、w 都声明为 int

其他,请参阅this

golang 中可以对函数的返回值进行命名

然后,如果您没有给 z 赋值,它将有一个默认值 int,即 0。所以,没有警告,代码没问题。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>