If statement 提供从if语句返回的函数
从golang中的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
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())
}