如何使用reflect.MakeFunc来使用可变参数函数

时间:2016-06-13 16:53:14

标签: go

以下是反射中MakeFunc示例的摘录 文档。我理解它如何工作,如图所示。

// Make and call a swap function for ints.
var intSwap func(int, int) (int, int)
makeSwap(&intSwap)
fmt.Println(intSwap(0, 1))

我不理解的是它是如何与它一起使用的 可变输入。

var intswap func(...int) (...int)   // Got to be wrong
var intswap func(...int) (int, int) // Will not work even with 2 inputs

有人可以使用可变参数输入一个MakeFunc示例吗?

无法在网上任何地方找到示例!!!

由于

1 个答案:

答案 0 :(得分:1)

可变参数仅表示为切片,因此在您的示例中,交换函数参数将是单个值切片,而不是多个值。您可以通过concat方法访问切片值:https://play.golang.org/p/2b22FV_5v8

join