2016-06-14 10 views
0

Ich habe die folgende Golang main Funktion, wo eine andere variadic Funktion variadicFunc aufgerufen wird, an die ich Parameter verschiedener Datentypen übergeben muss. Der Code ist wie folgt.Pass Parameter verschiedener Datentypen zu einer Golang Variadic Funktion

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

Beim Ausführen des Programms wird folgender Fehler ausgelöst.

kann nicht 1 (Typ int) verwenden als Typ string in Argument variadicFunc

Antwort

2

können Sie verwenden, um eine 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

Brian Vanover: Wenn ich die Schnittstelle verwenden, bekomme ich nur die Speicheradresse als ausgegebene Ausgabe anstelle der übergebenen Parameterzeichenfolgen. –

+0

@CheralIrumborai, verwenden Sie das Paket 'fmt'. Der obige Code funktioniert für Sie. –

+0

[funktioniert für mich] (https://play.golang.org/p/r2lT2ldoNR) –

Verwandte Themen