go - 如何在 Go 中将可变参数从一个函数传递到另一个函数

标签 go composition variadic-functions

我试图在 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)
}

关于go - 如何在 Go 中将可变参数从一个函数传递到另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17939940/

相关文章:

wpf - 为什么要使用依赖注入(inject)容器?

mysql - 使用动态参数创建一个 MySQL 存储函数

go - 无法获得环境值(value)

go - gvm 在 ubuntu 14.04 中设置 GOPATH

go - ltdl.h 构建链代码时未发现错误

c# - 自定义媒体元素

java - Swing组合演示

c++ - 用于索引可变参数的 api

syntax - 如何在后续 block 中访问 va_list

go - 覆盖 http.FileServer 中的 Last-Modified header