151

What's the proper way of calling functions when evaluating their values in conditional statements?

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
}

this returns error:

./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

How would you write this in Go?

Jonathan Hall
  • 75,165
  • 16
  • 143
  • 189
Saad
  • 26,316
  • 15
  • 48
  • 69
  • 7
    The error message would be better as: "*void function call* used as value" or "... used as value, *but doesn't return a value*". – Brent Bradburn Jul 27 '19 at 17:27

1 Answers1

228

You've forgotten to declare a return value. It should be:

func sumThis(a, b int) int {
// ...
Jonathan Hall
  • 75,165
  • 16
  • 143
  • 189
Maciej
  • 3,685
  • 1
  • 19
  • 14