"Utilizado como valor" en la llamada de función


122

¿Cuál es la forma correcta de llamar a funciones al evaluar sus valores en declaraciones condicionales?

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
}

esto devuelve error:

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

¿Cómo escribirías esto en Go?


2
El mensaje de error sería mejor como: " llamada de función nula usada como valor" o "... usado como valor, pero no devuelve un valor ".
Brent Bradburn

Respuestas:


179

Olvidó declarar un valor de retorno. Debería ser:

func sumThis(a, b int) int {
// ...
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.