"Được sử dụng làm giá trị" trong lệnh gọi hàm


122

Cách gọi hàm thích hợp khi đánh giá giá trị của chúng trong câu lệnh điều kiện là gì?

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
}

điều này trả về 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

Làm thế nào bạn sẽ viết điều này trong cờ vây?


2
Thông báo lỗi sẽ tốt hơn là: " lệnh gọi hàm void được sử dụng làm giá trị" hoặc "... được sử dụng làm giá trị, nhưng không trả về giá trị ".
Brent Bradburn

Câu trả lời:


179

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

func sumThis(a, b int) int {
// ...
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.