"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?


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 {
// ...
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.