"Utilisé comme valeur" dans l'appel de fonction

122

Quelle est la bonne façon d'appeler des fonctions lors de l'évaluation de leurs valeurs dans des instructions conditionnelles?

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
}

cela renvoie une erreur:

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

Comment écririez-vous cela dans Go?

Saad
la source
2
Le message d'erreur serait mieux comme: " appel de fonction vide utilisé comme valeur" ou "... utilisé comme valeur, mais ne renvoie pas de valeur ".
Brent Bradburn

Réponses:

179

Vous avez oublié de déclarer une valeur de retour. Ça devrait être:

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