2012-09-24 25 views
55

cách gọi đúng chức năng khi đánh giá giá trị của chúng trong câu lệnh có điều kiện là gì?"được sử dụng làm giá trị" trong hàm gọi

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 
} 

trả này lỗi:

./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ách bạn sẽ viết những dòng này trong Go?

Cảm ơn

+2

Cảm ơn cho câu hỏi, tôi chỉ làm điều tương tự

Trả lời

87

Bạn quên khai báo giá trị trả lại. Nó phải là:

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

Cảm ơn ... tôi không tin, giá trị trả về cần kkkkk – KingRider

-5

Vẻ đẹp của nó là bạn có thể viết nó theo ý bạn muốn. Go không phải là 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

bạn có thể giải thích câu trả lời của bạn nhiều hơn một chút? Tôi không chắc rằng tôi hiểu cách điều này thể hiện bất cứ thứ gì "giống như" hay "ít giống java" hơn. Tuyên bố này không có nghĩa là mâu thuẫn với sự khẳng định đó, tôi chỉ không hiểu điểm của bạn từ ví dụ một mình. –

+0

Một khác biệt phát hiện ra rằng câu trả lời này có nghĩa là thêm ''int' làm kiểu trả về cho hàm. – mixdev

+1

điều hữu ích duy nhất trong câu trả lời là trả về 'int' trong hàm. – pankajdoharey

Các vấn đề liên quan