Функции Variadic в Go

Функции Variadic в Go

#GO


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


Важные моменты:

  • В объявлении функции variadic типу последнего параметра предшествует многоточие, т. е. (  ). Это указывает на то, что функция может быть вызвана при любом количестве параметров этого типа.Синтаксис:
function function_name(para1, para2...type)type{
// code...
}
  • Внутри функции … тип ведет себя как срез. Например, предположим, что у нас есть сигнатура функции, то есть add (b… int) int, теперь параметр типа [[int].
  • Вы также можете передать существующий срез в функцию с переменным значением. Чтобы сделать это, мы передаем часть полного массива функции, как показано в примере 2 ниже.
  • Если вы не передаете аргумент в функцию с переменными значениями, то внутри функции будет значение nil.
  • Функции variadic обычно используются для форматирования строк.
  • Вы также можете передать несколько срезов в функцию variadic.
  • Вы не можете использовать переменный параметр в качестве возвращаемого значения, но вы можете вернуть его как фрагмент.

Пример 1:


// Перейти к программе, чтобы проиллюстрировать

// понятие вариационной функции

package main

  

import(

    "fmt"

    "strings"

)

  

// Variadic функция для объединения строк

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"

)

  

// Variadic функция для объединения строк

func joinstr(element...string)string{

    return strings.Join(element, "-")

}

  

func main() {

     

   // передать срез в функцию с переменным значением

   element:= []string{"geeks", "FOR", "geeks"}

   fmt.Println(joinstr(element...))

}

Выход:

geeks-FOR-geeks

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

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


Report Page