Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 提供从if语句返回的函数_If Statement_Go_Return - Fatal编程技术网

If statement 提供从if语句返回的函数

If statement 提供从if语句返回的函数,if-statement,go,return,If Statement,Go,Return,从golang中的if语句中返回函数的预期返回语句时遇到问题 我已提供以下代码: package main import ( "fmt" ) func random() string { var x = "return" if x == "return" { return x } } func main() { fmt.Println(random()) } 主函数不应该打印出随机函数返回的字符串值吗?我得到的只是 go.go:13

从golang中的if语句中返回函数的预期返回语句时遇到问题

我已提供以下代码:

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

有人知道如何实现这一点吗?

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


在Go 1.1中,您不需要一直在函数末尾添加return,但需要一个终止语句,此代码应该可以工作:

有关更多信息,请参阅:


通常你会在结尾处加上一个
恐慌(“永远不会发生”)
。这也是编译器所允许的,同时也是一种健全性检查。这是Go编译器更愚蠢的行为之一,还有一个事实,即未使用的变量和导入是错误而不是警告。你需要做编译器想要你做的,而不是你需要做的,你知道!
func random() string {
    var x = "return"

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

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