我正在尝试将可变参数从一个函数传递给Go中的另一个函数。基本上是这样的:

func CustomPrint(a ...interface{}) (int, error) {
    // ...
    // Do something else
    // ...

    return fmt.Print(a)
}

但是,当我这样做时,a像 slice 一样打印,而不像参数列表那样打印。即
fmt.Print("a", "b", "c") // Prints "a b c"
CustomPrint("a", "b", "c") // Print "[a b c]"

任何想法如何实现这一点?

最佳答案

调用 slice 时使用...:

package main
import "fmt"
func CustomPrint(a ...interface{}) (int, error) {
     return fmt.Print(a...)
}
func main() {
     CustomPrint("Hello", 1, 3.14, true)
}

07-25 22:43