在Golang中将函数作为函数参数传入,错在哪里?

图片描述

看了半天感觉没什么问题啊,将countFunc作为参数传入,其参数为两个int类型也对得上,为啥传入就报这个错~

阅读 3.7k
2 个回答

谢邀

1 函数原型包括返回值类型
2 golang不支持命名实参....

package main

import (
    "fmt"
)

func countFunc(a int, b int) (c, d int) {
    return a + 1, b + 1
}

func mixFunc(op func(int, int) (int, int), a int, b int) (int, int) {
    return op(a, b)
}
func main() {

    q, r := mixFunc(countFunc, 2, 3)
    fmt.Printf("%d %d\n", q, r)
} 

传入函数和接收函数类型不符,函数原型包括返回值类型,将func mixFunc(op func(int, int), a, b int) (q, r int) {
改为 func mixFunc(op func(int, int) (c, d int), a, b int) (q, r int) {
就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题