dongyong6045
2011-11-03 12:51
浏览 27
已采纳

MinGW编译器抱怨if-else语句

Consider the following (useless) Go function:

func domagic(n int) int {
    if n > 10 {
        return n;
    } else {
        return 0;
    }
}

This gives me the following compiler error:

main.go:15: function ends without a return statement

However, if i return a value outside the if-else block (before the end of the function), it compiles without errors.

Is this behavior by design, or is it something simply not yet implemented in the Go MinGW compiler?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dsgtew3241 2011-11-03 15:17
    已采纳

    Simple googling for the exact compiler error message yields this bugtracker issue. So I'd not say it's "by design" as it looks more like "it'd just happened to be implemented this way". See also this thread.

    打赏 评论
  • douxuan0698 2011-11-03 13:29

    It's by design. Write:

    package main
    
    import "fmt"
    
    func domagic(n int) int {
        if n > 10 {
            return n
        }
        return 0
    }
    
    func main() {
        fmt.Println(domagic(7), domagic(42))
    }
    

    Output:

    0 42
    
    打赏 评论

相关推荐 更多相似问题