2012-09-24 7 views
55

qual è il modo corretto di chiamare le funzioni quando si valutano i loro valori in istruzioni condizionali?"usato come valore" nella chiamata di funzione

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 
} 

questo restituisce l'errore:

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

come ti scrivere questo in Go?

Grazie

+2

Grazie per la questione, ho appena fatto la stessa

risposta

87

Hai dimenticato di dichiarare il valore restituito. Dovrebbe essere:

func sumThis(a, b int) int{ 
// ... 
+0

Grazie ... Io non credo, valore di ritorno necessario kkkkk – KingRider

-5

Il bello è che si può scrivere come vuoi. Go non è Java

package main 

func main() { 
    r := "derp" 
    if sumThis(1, 2) > sumThis(3, 4) { 
     r = "test" 
    } 
    println(r) 
} 
func sumThis(a, b int) int { 
    return a + b 
} 
+12

Puoi spiegare la tua risposta un po 'di più? Non sono sicuro di capire come questo dimostri qualcosa che sia "più go-like" o "meno java-like". Questa affermazione non è destinata a contraddire questa affermazione, semplicemente non capisco il tuo punto dall'esempio da solo. –

+0

Un diff ha scoperto che questa risposta significava aggiungere "come" il tipo di ritorno per la funzione. – mixdev

+1

l'unica cosa utile nella risposta è stato restituire 'int' nella funzione. – pankajdoharey

Problemi correlati