"Digunakan sebagai nilai" dalam pemanggilan fungsi


122

Apa cara yang tepat untuk memanggil fungsi saat mengevaluasi nilainya dalam pernyataan bersyarat?

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
}

ini mengembalikan kesalahan:

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

Bagaimana Anda akan menulis ini di Go?


2
Pesan kesalahan akan lebih baik sebagai: " panggilan fungsi void digunakan sebagai nilai" atau "... digunakan sebagai nilai, tetapi tidak mengembalikan nilai ".
Brent Bradburn

Jawaban:


179

Anda lupa menyatakan nilai pengembalian. Harus:

func sumThis(a, b int) int {
// ...
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.