将不同数据类型的参数传递给Golang可变函数

3

我有以下Golang main函数,其中调用了另一个可变参数函数variadicFunc,我需要传递不同数据类型的参数。代码如下。

package main

import "fmt"

func main() {
    variadicFunc("hello", "Change", "the ", "World using Golang", 1, 2, 3, 4)
}

func variadicFunc(messages ...string) {
    for _, i := range messages {
        fmt.Println(i)
    }
}

在运行程序时,会抛出以下错误:

在可变参数函数中,无法将1(类型为int)用作字符串类型的参数

1个回答

4
你可以使用一个接口来实现这个功能。请参考官方文档
package main
import "fmt"

func main() { 
  variadicFunc("hello", "Change", "the ", "World using Golang", 1, 2, 3, 4)
}

func variadicFunc(messages ...interface{}) {
  for _, i := range messages {
    fmt.Println(i)
  }
}

Brian Vanover:当我使用接口时,输出打印的只是内存地址,而不是传递的参数字符串。 - Cheral Irumborai
@CheralIrumborai,请使用 fmt 包。上面的代码将适用于您。 - Brian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接