如何在不定义数组大小的情况下将数组传递给GO函数?

时间:2019-07-07 12:48:50

标签: arrays go

我尝试定义一个数组,将其传递给未定义参数大小的函数,但是会发生错误。

package main

import "fmt"

func main() {
    var a=[5]int{1,2,3,4,5}
    f(a,5)
    fmt.Println(a)
}
func f(arr []int,size int) {
    for i,x:=range arr  {
        fmt.Println(i,x)
        arr[i]=100
    }
}

在f的参数中不能使用([5] int)作为[] int类型

1 个答案:

答案 0 :(得分:2)

您可以将数组转换为切片内联,如下所示:

f(a[:],5)

Playground

有关更多背景信息,请参见:https://blog.golang.org/go-slices-usage-and-internals