2016-06-14 2 views
0

У меня есть следующая функция Golang main, где вызывается другая вариационная функция variadicFunc, к которой мне нужно передать параметры разных типов данных. Код выглядит следующим образом.Pass Параметры различных типов данных для функции Variantic 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

Brian Vanover: Когда я использую интерфейс, я просто получаю адрес памяти в качестве выводимого вывода вместо переданных параметров. –

+0

@CheralIrumborai, используйте пакет 'fmt'. Вышеупомянутый код будет работать для вас. –

+0

[работает для меня] (https://play.golang.org/p/r2lT2ldoNR) –