2016-06-14 146 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) –

相關問題