Подтвердить что ты не робот

"используется как значение" при вызове функции

Каков правильный способ вызова функций при оценке их значений в условных операторах?

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
}

это возвращает ошибку:

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

как бы вы пишете это в Go?

Спасибо

4b9b3361

Ответ 1

Вы забыли объявить возвращаемое значение. Это должно быть:

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

Ответ 2

Красота заключается в том, что вы можете написать это так или иначе, как вам нравится. Go не является java

package main

func main() {
    r := "derp"
    if sumThis(1, 2) > sumThis(3, 4) {
        r = "test"
    }
    println(r)
}
func sumThis(a, b int) int {
    return a + b
}