2016-06-14 60 views
0

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

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)类型的字符串variadicFunc

回答

2

您可以使用interface

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) 
    } 
} 
+0

布莱恩Vanover:当我使用的接口,我刚刚得到的内存地址作为打印的输出而不是传递的参数字符串。 –

+0

@CheralIrumborai,使用'fmt'包。上面的代码将适用于您。 –

+0

[适合我](https://play.golang.org/p/r2lT2ldoNR) –

相关问题