Обозначение с тремя точками ... можно использовать в нескольких местах:

Чтобы указать длину при создании литералов массива

arr := [...]string{"One", "Two", "Three", "Four", "Five"}
fmt.Println(len(arr)) // 5

Обратите внимание, что при этом создается массив фиксированной длины, а не срез. Так что методы типа append не сработают.

Вариативные функции

Это функция, которая может принимать любое количество конечных аргументов. Создайте функцию с переменным числом переменных, поставив перед типом префикс ... следующим образом:

func sum(nums ...int) int {
  total := 0
  for _, num := range nums {
    total += num
  }
  return total
}

В этом примере nums будет slice из ints. Вы бы назвали sum следующим образом:

total := sum(1, 2, 15, 24)
fmt.Println(total) // 42

Вы также можете использовать нотацию ... a для передачи среза (не массива) в вариационную функцию следующим образом:

slice := []int{2, 5, 9, 8}
total = sum(slice...)
fmt.Println(total) // 24

Попробуй здесь

Подстановочный знак для списков пакетов

Скорее всего, вы уже видели или использовали эту команду:

go test ./...

Это просто означает «проверить все пакеты в этом каталоге (и подкаталогах)».

Подробнее Голанг за шестьдесят секунд

Получить неограниченный доступ к Medium

Купите мне кофе, если вам понравилась статья :)