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

图片描述

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

回答:

谢邀

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) {
就可以了

以上是 在Golang中将函数作为函数参数传入,错在哪里? 的全部内容, 来源链接: utcz.com/p/182195.html

回到顶部