2016-06-14 20 views
0

次のGolang main関数を使用しています。別の可変関数variadicFuncが呼び出され、異なるデータ型のパラメータを渡す必要があります。コードは以下の通りです。Golang Variadic関数に異なるデータ型のパラメータを渡す

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

実行時にエラーが発生したプログラムがスローされます。

答えて

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を使用することができますvariadicFuncに引数に文字列型として1(int型)を使用することはできません:私はインターフェイスを使用する場合、私はちょうど取得渡されたパラメータ文字列の代わりに印刷された出力としてのメモリアドレス。 –

+0

@CheralIrumborai、 'fmt'パッケージを使用してください。上のコードはあなたのために働くでしょう。 –

+0

[私の作品](https://play.golang.org/p/r2lT2ldoNR) –

関連する問題