Q: Is there a way, in golang, to define a function which accepts an array of arbitrary length as argument?

e.g.,

function demoArrayMagic(arr [magic]int){
....
}

I have understood that in golang, array length is part of the variable type, for this reason the following function is not going to accept one arbitrary array as input

function demoArray(arr [2]int){
....
}
arrInput [6]intdemoArray(arrInput)

Also the following function, which accepts a slice argument, does not accept arrays as arguments (different types, as expected):

function demoSlice(arr []int){
....
}
demoSlice(arrInput)

The question is, is there a way to define a function that takes arrays of arbitrary length (arrays, NOT slice)? It looks quite strange and limiting for a language to impose this constraint.

[][]int[10000][128]int

Regards

P.s: I remind now that Go, passes/uses things 'by value', using arrays may be overkill cause golang is going to copy them lot of times. I think I'll stay with slices and I'll try to understand GOB internals a bit.