"Als Wert verwendet" im Funktionsaufruf


122

Wie werden Funktionen aufgerufen, wenn ihre Werte in bedingten Anweisungen ausgewertet werden?

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
}

Dies gibt einen Fehler zurück:

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

Wie würden Sie das in Go schreiben?


2
Die Fehlermeldung wäre besser als: " Funktionsaufruf ungültig als Wert verwenden" oder "... als Wert verwendet, aber keinen Wert zurückgeben ".
Brent Bradburn

Antworten:


179

Sie haben vergessen, einen Rückgabewert anzugeben. Es sollte sein:

func sumThis(a, b int) int {
// ...
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.