从if语句问题提供函数返回

时间:2013-11-20 14:52:35

标签: if-statement go return

我在golang的if语句中返回函数的预期return语句时遇到了麻烦。

我提供了以下代码:

package main

import (
    "fmt"
)

func random() string {
    var x = "return"

    if x == "return" {
        return x
    }
}
func main() {
    fmt.Println(random())
}

主函数不应该打印出随机函数返回的字符串值吗?我得到的是

go.go:13: missing return at end of function

有没有人知道如何实现这一目标?

2 个答案:

答案 0 :(得分:5)

如果函数返回值,则必须在末尾包含return,即使它从未使用过:

http://play.golang.org/p/XFsPL2G15R

func random() string {
    var x = "return"

    if x == "return" {
        return x
    }
    return ""
}
func main() {
    fmt.Println(random())
}

答案 1 :(得分:4)

在Go 1.1中,您不需要一直在函数末尾添加return,但是您需要 Terminating语句,此代码应该有效: http://play.golang.org/p/fNiijqNHbt

func random() string {
    var x = "return"

    if x == "return" {
        return x
    } else {
        return "else"
    }
}
func main() {
    fmt.Println(random())
}

有关详细信息,请参阅: