Задать вопрос
shpaker
@shpaker
Вольный хлебопашец

Как передать массив []string функции, которая принимает ... string?

Собственно вопрос в заголовке.
Если передаю в лоб, то при исполнении программы вывваливается нечто такое:
panic: sql: expected 4 arguments, got 1
  • Вопрос задан
  • 312 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
xotkot
@xotkot
хорошо есть и хорошо весьма
Если я правильно понял то примерно так:
func add(args ...string) (total string) {
  for _, v := range args {
    total += v
  }
  return
}

func main() {
  fmt.Println(add("1", "2", "3"))   // 123

  xs := []string{"1", "2", "3"}
    fmt.Println(add(xs...))        // 123
}

ставится массив и три точки в конце, в данном примере это xs...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanKiLL
@FanKiLL
...string
Означает что вы хотите передавать неопределённое колличество параметров с типом string
например конкатенация
func Concat(strings ...string) bytes.Buffer {
	buffer := bytes.Buffer{}
	for _, str := range strings {
		buffer.WriteString(str)
	}
	return buffer
}

И вызывать надо соответственно
Concat("Строка 1", "Строка 2", "Строка 3", "Строка 4", "Строка 5")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы