2012-09-24 26 views
55

条件文で値を評価するときに関数を呼び出す適切な方法は何ですか?関数呼び出しで値として使用される

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 
} 

これはエラーを返します:

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

あなたが行くでこれを書くだろうか?

ありがとうございました

+2

おかげで、私はちょうど同じ

答えて

87

あなたは戻り値を宣言するのを忘れてしまいました。それは次のようにする必要があります:

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

感謝をしました...私は信じているJavaのではないではありません、必要な戻り値は、 – KingRider

-5

それはあなたが好きなとにかく書くことができるということです。 Goは質問に対する

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

をKKKKKあなたはもう少しあなたの答えを説明できますか?私はこれがどのように "よりゴージャスな"または "よりJavaのような"ものであるかを理解しているか分かりません。このステートメントは、その主張と矛盾するものではありません。私は単なる例からあなたのポイントを理解していません。 –

+0

diffは、この答えが ''int'を関数の戻り値の型として追加することを意味することを発見しました。 – mixdev

+1

答えで唯一有益なのは、関数の戻り値 'int'です。 – pankajdoharey

関連する問題