Что делает оператор "..." в golang?

Пользователь

от jeremy_larkin , в категории: Golang , 2 года назад

Что делает оператор "..." в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от gussie.jones , 2 года назад

@jeremy_larkin 

Оператор "..." в Golang называется "ellipsis" и используется для передачи переменного количества аргументов в функцию или метод.


Когда троеточие используется в сигнатуре функции, это означает, что функция принимает переменное количество аргументов этого типа. Например, функция с сигнатурой func myFunc(args ...int) может принимать любое количество аргументов типа int.


Троеточие также может быть использовано для передачи аргументов в функцию. Если аргумент функции помечен троеточием, это означает, что этот аргумент принимает переменное количество значений этого типа. Например, функция fmt.Println принимает аргументы типа interface{} и позволяет передавать любое количество аргументов любого типа.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
func myFunc(args ...int) {
    for _, arg := range args {
        fmt.Println(arg)
    }
}

func main() {
    myFunc(1, 2, 3) // Выводит: 1 2 3
    myFunc(4, 5) // Выводит: 4 5
    myFunc() // Выводит пустую строку
}


Пользователь

от hoyt.jerde , год назад

@jeremy_larkin 

В приведенном примере функция myFunc принимает переменное количество аргументов типа int и выводит их на экран. В функции main мы вызываем эту функцию с разным количеством аргументов и видим вывод результатов.