“Usado como valor” na chamada de função

122

Qual é a maneira correta de chamar funções ao avaliar seus valores em instruções condicionais?

package main
import "fmt"
func main(){
        if sumThis(1,2) > sumThis(3,4){
                fmt.Println("test")
        } else {
                fmt.Println("derp")
        }
}
func sumThis(a, b int){
        return a+b
}

isso retorna o erro:

./test4.go:4: sumThis(1, 2) used as value
./test4.go:4: sumThis(3, 4) used as value
./test4.go:11: too many arguments to return

Como você escreveria isso no Go?

Saad
fonte
2
A mensagem de erro seria melhor como: " void função chamada usada como valor" ou "... usada como valor, mas não retorna um valor ".
Brent Bradburn

Respostas:

179

Você se esqueceu de declarar um valor de retorno. Deveria ser:

func sumThis(a, b int) int {
// ...
Maciej
fonte