Golang错误:在中位数的参数中不能使用([5] int)类型为int类型

时间:2019-10-27 01:42:10

标签: go

我已经编写了一个函数来查找奇数长度数组的中位数-

package main

import (
    "fmt"
    "sort"
)

func median(arr ...int)(int){
    sort.Ints(arr)
    return arr[len(arr)/2]
}

func main() {

    arr := []int{1,2,3}
    med := median(arr)
    fmt.Println(med)


}

但是在编译时,我收到一条错误消息-Cannot use arr (type [5]int) as type int in argument to median

究竟是什么错误?我该如何解决?

PS-我不想修改中位数函数。但是导致该问题的我的arr类型出了什么问题?

1 个答案:

答案 0 :(得分:1)

您说median是一个可变参数函数,但是您要传递arr作为第一个参数,而不是所有参数。您只需要通知go将arr用作可变参数的 all

med := median(arr...)

为我工作。