Обозначение с тремя точками ...
можно использовать в нескольких местах:
Чтобы указать длину при создании литералов массива
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
Купите мне кофе, если вам понравилась статья :)