Golang错误:无法使用(类型[5]int)作为中位数参数中的int类型

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


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导致了这个问题呢?


墨色风雨
浏览 72回答 1
1回答

LEATH

您说的median是一个可变参数函数,但您arr作为第一个参数而不是所有参数传递。您只需通知 go 用作arr所有可变参数:med := median(arr...)为我工作。
打开App,查看更多内容
随时随地看视频慕课网APP