Patrik Svensson
Patrik Svensson

Reputation: 13844

Go MinGW compiler complains about if-else statement

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?

Upvotes: 0

Views: 299

Answers (2)

kostix
kostix

Reputation: 55443

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.

Upvotes: 2

peterSO
peterSO

Reputation: 166529

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

Upvotes: 1

Related Questions