İşlev çağrısında "değer olarak kullanılır"


122

Koşullu ifadelerde değerlerini değerlendirirken fonksiyonları çağırmanın doğru yolu nedir?

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
}

bu hata verir:

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

Bunu Go'da nasıl yazarsın?


2
Hata mesajı şu şekilde daha iyi olacaktır: " değer olarak kullanılan void işlev çağrısı " veya "... değer olarak kullanılıyor, ancak bir değer döndürmüyor ".
Brent Bradburn

Yanıtlar:


179

Bir dönüş değeri beyan etmeyi unuttunuz. Olmalı:

func sumThis(a, b int) int {
// ...
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.