«Используется как значение» в вызове функции


122

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

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?


2
Сообщение об ошибке было бы лучше, например: « вызов функции void используется как значение» или «... используется как значение, но не возвращает значение ».
Brent

Ответы:


179

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

func sumThis(a, b int) int {
// ...
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.