在golang中运行`go get`时如何绕过“函数结束而没有返回语句”

时间:2013-09-15 12:16:52

标签: go

我正在尝试为golang安装此Cassandra驱动程序:https://github.com/tux21b/gocql

当我执行go get https://github.com/tux21b/gocql时,我得到了

root@backend:/vagrant# go get tux21b.org/v1/gocql
# tux21b.org/v1/gocql
/usr/lib/go/src/pkg/tux21b.org/v1/gocql/conn.go:280: function ends without a return statement
/usr/lib/go/src/pkg/tux21b.org/v1/gocql/conn.go:359: function ends without a return statement
/usr/lib/go/src/pkg/tux21b.org/v1/gocql/conn.go:407: function ends without a return statement
/usr/lib/go/src/pkg/tux21b.org/v1/gocql/marshal.go:1000: function ends without a return statement

如何管理要安装的软件包?

1 个答案:

答案 0 :(得分:7)

遇到此特定编译错误时要做的第一件事是确保已从Go 1.0版本升级到1.1或更高版本。

原因是Go编译器在检测不返回其预期返回值的函数时变得更聪明。例如,像这样的函数:

function check(n int) bool {
    if n > 10 {
        return true
    } else {
        return false
    }
}

会导致Go 1.0出现编译错误,但Go 1.1可以正确检测到此函数始终返回值并且没有问题。