„Używany jako wartość” w wywołaniu funkcji


122

Jaki jest właściwy sposób wywoływania funkcji podczas oceniania ich wartości w instrukcjach warunkowych?

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
}

to zwraca błąd:

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

Jak byś to napisał w Go?


2
Komunikat o błędzie byłby lepszy jako: „ wywołanie funkcji void używane jako wartość” lub „... używane jako wartość, ale nie zwraca wartości ”.
Brent Bradburn

Odpowiedzi:


179

Zapomniałeś zadeklarować wartość zwracaną. Powinno być:

func sumThis(a, b int) int {
// ...
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.