"Usato come valore" nella chiamata di funzione


122

Qual è il modo corretto di chiamare le funzioni quando si valutano i loro valori nelle istruzioni condizionali?

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
}

questo restituisce un errore:

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

Come scriveresti questo in Go?


2
Il messaggio di errore sarebbe meglio come: " chiamata di funzione void usata come valore" o "... usata come valore, ma non restituisce un valore ".
Brent Bradburn,

Risposte:


179

Hai dimenticato di dichiarare un valore di ritorno. Dovrebbe essere:

func sumThis(a, b int) int {
// ...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.