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

Зарегистрируйтесь и зарабатывайте 1000$ в день ⋙

Вариативные функции в 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:

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

  • Вариативные функции могут иметь только один вариативный параметр, и он должен быть последним параметром.
  • В одном определении функции не может быть нескольких переменных параметров.
Sign up and earn $1000 a day ⋙

Leave a Comment

Нет необходимости в нескольких приложениях Adobe Mobile, вам понадобится только Adobe Express!

Нет необходимости в нескольких приложениях Adobe Mobile, вам понадобится только Adobe Express!

Adobe предлагает более 4 приложений для редактирования фотографий на телефоне — все они настолько похожи, что сложно понять, какое из них вам действительно нужно.

5 гаджетов, которые превратят обычный телевизор в умный

5 гаджетов, которые превратят обычный телевизор в умный

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

Как пользоваться пультом дистанционного управления кондиционером Panasonic

Как пользоваться пультом дистанционного управления кондиционером Panasonic

Правильное использование пульта дистанционного управления кондиционером Panasonic поможет нам воспользоваться всеми преимуществами функций кондиционера.

Gemini запускает Talk Live для фотографий, файлов и YouTube

Gemini запускает Talk Live для фотографий, файлов и YouTube

Gemini Live добавил функцию «Talk Live about», и теперь она будет более широко распространена на устройствах Android. Раньше Gemini Live принимал только голосовой ввод, но «Talk Live about» расширил возможности загрузки контента

Microsoft Copilot обновлен с помощью Deep Research

Microsoft Copilot обновлен с помощью Deep Research

Microsoft наконец-то внедряет функцию Deep Research в свой ИИ Copilot. Он позволяет пользователям проводить тщательное, многоэтапное исследование по любой теме.

Как превратить фотографию в карандашный рисунок в Photoshop

Как превратить фотографию в карандашный рисунок в Photoshop

Из этого урока вы узнаете, как легко превратить фотографию в карандашный рисунок с помощью Adobe Photoshop.

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

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

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

Как писать цветные буквы в Lien Quan Mobile

Как писать цветные буквы в Lien Quan Mobile

Чтобы написать цветной текст в Lien Quan Mobile, следуйте инструкциям в этой статье. Цветные символы LQ Mobile будут более заметны.

7 процессов диспетчера задач, которые никогда не должны заканчиваться

7 процессов диспетчера задач, которые никогда не должны заканчиваться

Раздел системных процессов Windows, расположенный в нижней части списка диспетчера задач Windows 10, содержит несколько важных процессов, которые необходимы для правильной работы вашего компьютера.

Apple позволяет пользователям оставаться на iOS 15.7 перед обновлением до iOS 16

Apple позволяет пользователям оставаться на iOS 15.7 перед обновлением до iOS 16

Apple позволяет пользователям оставаться на iOS 15 и при этом получать обновления безопасности до обновления до iOS 16.

Результаты оценки производительности процессоров Intel Core Ultra 5 225H, Core Ultra 7 255H и Core Ultra 9 285H доступны на Geekbench

Результаты оценки производительности процессоров Intel Core Ultra 5 225H, Core Ultra 7 255H и Core Ultra 9 285H доступны на Geekbench

Три модели из будущей линейки мобильных процессоров Intel Arrow Lake-H были протестированы на Geekbench, показав весьма впечатляющую производительность и характеристики в одноядерном и многоядерном режимах.

Кто бы мог подумать, что процесс производства привычных резинок настолько сложен и трудоемок?

Кто бы мог подумать, что процесс производства привычных резинок настолько сложен и трудоемок?

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

9 интересных фактов о Меркурии

9 интересных фактов о Меркурии

Меркурий — самая маленькая планета Солнечной системы, а также самая близкая к Солнцу планета. Меркурий вращается вокруг Солнца с невероятно высокой скоростью, составляя в среднем около 170 000 км/ч. Это лишь некоторые из множества интересных фактов об этой планете.

Каковы размеры 32-дюймовых, 40-дюймовых, 43-дюймовых, 55-дюймовых телевизоров... от Sony, Samsung, LG?

Каковы размеры 32-дюймовых, 40-дюймовых, 43-дюймовых, 55-дюймовых телевизоров... от Sony, Samsung, LG?

Статья ниже поможет вам разобраться в размерах современных линеек телевизоров Sony, Samsung и LG, чтобы вы могли принять правильное решение о покупке.

7 простых технических хитростей, которые кардинально улучшат качество вашей жизни

7 простых технических хитростей, которые кардинально улучшат качество вашей жизни

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