我已经编写了一个函数来查找奇数长度数组的中位数-
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
类型出了什么问题?
答案 0 :(得分:1)
您说median
是一个可变参数函数,但是您要传递arr
作为第一个参数,而不是所有参数。您只需要通知go将arr
用作可变参数的 all :
med := median(arr...)
为我工作。