"Використовується як значення" у виклику функції


122

Який правильний спосіб виклику функцій при оцінці їх значень у умовних операторах?

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
Повідомлення про помилку було б краще: " виклик недійсної функції використовується як значення" або "... використовується як значення, але не повертає значення ".
Брент Бредберн

Відповіді:


179

Ви забули оголосити повернене значення. Вона повинна бути:

func sumThis(a, b int) int {
// ...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.