Spec: ... :
f p ...T, f p []T.
...
[]T, ...T, .... .
: , sliceOfSlices ( [][]interface{}) args ( []interface{}) ( ).
, unpack(slice), unpack() interface{}, slice ( []interface{}) interface{} .
unpack(slice...), slice unpack(); , slice []interface{}, (args ...interface{}).
, unpack(sliceOfSlices), sliceOfSlices interface{} .
unpack(sliceOfSlices...), sliceOfSlices unpack(), sliceOfSlices ( [][]interface{}) , , .
sliceOfSlices unpack() "exploded" - , []interface{}, , ....
:
var sliceOfSlices2 []interface{}
for _, v := range sliceOfSlices {
sliceOfSlices2 = append(sliceOfSlices2, v)
}
unpack(sliceOfSlices2...)
Go Playground.
unpack() :
func unpack(args ...interface{}) {
fmt.Println(len(args))
}
( ), :
1
3
1
2
..., ( interface{}), ..., .
Go Playground.