English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной курс Golang

Контрольные операторы в Golang

Функции и методы в Golang

Структуры в Golang

Срезы и массивы в Golang

Строки(String) в Golang

Указатели в Golang

Интерфейсы в Golang

Конкурентоспособность в Golang

异常(Error) в Golang

Другие категории Golang

Функции с переменным количеством параметров в языке Go

Функции, вызываемые с разным количеством параметров, называются функциями с переменным количеством параметров. Иначе говоря, это позволяет пользователю передавать функции с переменным количеством параметров ноль или любое количество параметров.fmt.PrintfЭто пример функции с переменным количеством параметров, которая в начале требует фиксированного параметра, а затем может принимать любое количество параметров.

Важно:

  • В объявлении функции с переменным количеством параметров перед типом последнего параметра ставится тире, то есть (...)。Это указывает на то, что функция может вызывать любое количество таких параметров

    Синтаксис:

    function function_name(para1, para2...type)type{
        // code...
    }
  • function ...typeofДействие подобно срезу (slice). Например, предположим, что у нас есть функция с подписью add(b…int)int, которая теперь принимает параметр типа []int.

  • Вы также можете передавать существующие массивы в функцию с переменными аргументами. Для этого мы передаем часть полного массива функции, как показано ниже.Пример 2как показано.

  • Когда вы не передаете никаких аргументов в функцию с переменными аргументами, в функции используется значение nil по умолчанию.

  • Функции с переменными аргументами обычно используются для форматирования строк.

  • Вы также можете передавать несколько массивов в функцию с переменными аргументами.

  • Вы не можете использовать переменные аргументы в качестве значения возвращаемого, но вы можете вернуть их в виде массива.

Пример с нулевым и множеством аргументов:

package main
import (
    "fmt"
    "strings"
)
//Функция с переменными аргументами для объединения строк
func joinstr(element ...string) string {
    return strings.Join(element, "-")
}
func main() {
    //Ноль аргументов
    fmt.Println(joinstr())
    //Множество аргументов
    fmt.Println(joinstr("GEEK", "GFG"))
    fmt.Println(joinstr("Geeks", "for", "Geeks"))
    fmt.Println(joinstr("G", "E", "E", "k", "S"))
}

Вывод:

GEEK-GFG
Geeks-for-Geeks
G-E-E-k-S

Пример 2, объединение строк с помощью функции с переменными аргументами, передача среза в функции с переменными аргументами:

package main 
  
import( 
    "fmt"
    "strings"
) 
  
//Функция с переменными аргументами для объединения строк
func joinstr(element...string)string{ 
    return strings.Join(element, "-") 
} 
  
func main() { 
     
   //Передача среза в функции с переменными аргументами
   element:= []string{"geeks", "FOR", "geeks"} 
   fmt.Println(joinstr(element...)) 
}

Вывод:

geeks-FOR-geeks

Когда мы используем функцию с переменными аргументами:

  • Когда вам нужно передать срез в функции, используется функция с переменными аргументами.

  • Когда мы не знаем количество аргументов, используется функция с переменными аргументами.

  • При использовании функции с переменными аргументами в программе, это может увеличить читаемость программы.