我在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
有没有人知道如何实现这一目标?
答案 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())
}
有关详细信息,请参阅: