Нестабильные функции в Golang

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

Нестабильные функции в Golang

package main
import "fmt"

// Hàm Variadic tính tổng
func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

func main() {
    fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
    fmt.Println("Sum of 4, 5:", sum(4, 5))
    fmt.Println("Sum of no numbers:", sum())
}

Результат:

Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0

Синтаксис:

func functionName(parameters ...Type) ReturnType {
    // Code
}

В приведенном выше синтаксисе:

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

Как использовать неопределенные функции в Golang

Использование вариативных функций

При определении вариативной функции указывается тип аргумента, за которым следует многоточие (...), как в примере выше. Внутри функции эти аргументы можно рассматривать как срез.

Вызов вариативной функции

Вы можете вызвать вариативную функцию с любым количеством аргументов, включая ноль. Эта функция обрабатывает аргументы как срез.

Например:

package main
import "fmt"

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

func main() {
    fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
    fmt.Println("Sum of 4, 5:", sum(4, 5))
    fmt.Println("Sum of no numbers:", sum())
}

Результат:

Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0

Вариативная функция с различными параметрами

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

Например:

package main
import "fmt"

// Hàm Variadic tính tổng
func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

// Hàm với tham số thông thường và variadic 
func greet(prefix string, nums ...int) {
    fmt.Println(prefix)
    for _, n := range nums {
        fmt.Println("Number:", n)
    }
}
func main() {
    greet("Sum of numbers:", 1, 2, 3)
    greet("Another sum:", 4, 5)
    greet("No numbers sum:")
}

Результат:

Sum of numbers:
Number: 1
Number: 2
Number: 3
Another sum:
Number: 4
Number: 5
No numbers sum:

Ограничения вариативных функций

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

Оставить комментарий

Втянет ли Европа в гипотетическую ядерную войну между США, Израилем и Ираном? Объяснение правил НАТО.

Втянет ли Европа в гипотетическую ядерную войну между США, Израилем и Ираном? Объяснение правил НАТО.

Руководство по статьям 4 и 5 НАТО, правилам самообороны ООН и объяснение того, почему консультации не означают автоматического вступления Европы в войну.

Может ли Иран уже обладать ядерным оружием? Как интерпретировать доказательства.

Может ли Иран уже обладать ядерным оружием? Как интерпретировать доказательства.

Оцените утверждения об Иране в шесть этапов, различая обогащение урана, разработку оружия и подтвержденное обладание им.

Ядерные структуры США и Израиля: что на самом деле объясняют общедоступные источники.

Ядерные структуры США и Израиля: что на самом деле объясняют общедоступные источники.

Понимание полномочий по принятию решений в ядерной сфере в шесть этапов, включая контроль со стороны гражданского населения США и ограничения общедоступной информации об Израиле.

Ормузский пролив в 2026 году: что говорят официальные источники о перебоях в судоходстве.

Ормузский пролив в 2026 году: что говорят официальные источники о перебоях в судоходстве.

Справочник по официальным данным о сбоях в судоходстве в Ормузском проливе в 2026 году, заявлениям, связанным с Ираном, подтвержденным инцидентам и тому, что остается неясным.

Может ли гипотетический ядерный удар США и Израиля по Ирану привести к Третьей мировой войне?

Может ли гипотетический ядерный удар США и Израиля по Ирану привести к Третьей мировой войне?

Основанное на источниках руководство по рискам ядерной эскалации, правилам Устава ООН и статье 5 НАТО в строго гипотетическом сценарии с Ираном.

Как подготовиться к гипотетическому отключению электроэнергии, вызванному электромагнитным импульсом: 5 шагов для гражданских лиц.

Как подготовиться к гипотетическому отключению электроэнергии, вызванному электромагнитным импульсом: 5 шагов для гражданских лиц.

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

Как оценить киберугрозы, не предполагая Третью мировую войну: пошаговое руководство из 5 шагов.

Как оценить киберугрозы, не предполагая Третью мировую войну: пошаговое руководство из 5 шагов.

Используйте 5 защитных шагов для подтверждения кибернарушения, защиты учетных записей домохозяйств и предотвращения ошибочного принятия отключения электроэнергии за войну.

Ядерная зима: как оценить глобальные климатические последствия гипотетического удара по Ирану.

Используйте эти 5 шагов, чтобы оценить климатические последствия гипотетического удара Ирана, сравнить допущения моделей и избежать необоснованных прогнозов.

Сколько времени может потребоваться Земле для восстановления после гипотетической ядерной войны?

Сколько времени может потребоваться Земле для восстановления после гипотетической ядерной войны?

Ознакомьтесь с шестью шагами по чтению научных работ по вопросам климата, продовольствия и восстановления экосистем после гипотетического ядерного конфликта.

Контрольный список мер по подготовке к ядерным осадкам: необходимые припасы и шаги по обустройству убежища.

Контрольный список мер по подготовке к ядерным осадкам: необходимые припасы и шаги по обустройству убежища.

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