Нестабильные функции в 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

Лучшие ноутбуки для студентов в 2025 году

Лучшие ноутбуки для студентов в 2025 году

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

Как добавить принтер в Windows 10

Как добавить принтер в Windows 10

Добавить принтер в Windows 10 просто, хотя процесс для проводных устройств будет отличаться от процесса для беспроводных устройств.

Как проверить оперативную память и ошибки оперативной памяти на компьютере с максимальной точностью

Как проверить оперативную память и ошибки оперативной памяти на компьютере с максимальной точностью

Как вы знаете, оперативная память (ОЗУ) — очень важный компонент компьютера, выполняющий функцию памяти для обработки данных и определяющий скорость работы ноутбука или ПК. В статье ниже WebTech360 расскажет вам о нескольких способах проверки оперативной памяти на наличие ошибок с помощью программного обеспечения в Windows.

Разница между обычным телевизором и Smart TV

Разница между обычным телевизором и Smart TV

Умные телевизоры действительно покорили мир. Благодаря множеству замечательных функций и возможности подключения к Интернету технологии изменили то, как мы смотрим телевизор.

Почему в морозильной камере нет подсветки, а в холодильнике есть?

Почему в морозильной камере нет подсветки, а в холодильнике есть?

Холодильники — привычные бытовые приборы. Холодильники обычно имеют 2 отделения: холодильное отделение просторное и имеет подсветку, которая автоматически включается каждый раз, когда пользователь ее открывает, а морозильное отделение узкое и не имеет подсветки.

2 способа устранения перегрузки сети, которая замедляет Wi-Fi

2 способа устранения перегрузки сети, которая замедляет Wi-Fi

На сети Wi-Fi влияют многие факторы, помимо маршрутизаторов, пропускной способности и помех, но есть несколько разумных способов улучшить работу вашей сети.

Как перейти с iOS 17 на iOS 16 без потери данных с помощью Tenorshare Reiboot

Как перейти с iOS 17 на iOS 16 без потери данных с помощью Tenorshare Reiboot

Если вы хотите вернуться к стабильной версии iOS 16 на своем телефоне, вот базовое руководство по удалению iOS 17 и понижению версии с iOS 17 до 16.

Что происходит с организмом, если вы едите йогурт каждый день?

Что происходит с организмом, если вы едите йогурт каждый день?

Йогурт — замечательная еда. Полезно ли есть йогурт каждый день? Как изменится ваше тело, если вы будете есть йогурт каждый день? Давайте узнаем вместе!

Какой вид риса лучше всего подходит для здоровья?

Какой вид риса лучше всего подходит для здоровья?

В этой статье рассматриваются наиболее питательные виды риса и способы максимально увеличить пользу для здоровья любого выбранного вами вида риса.

Как просыпаться вовремя утром

Как просыпаться вовремя утром

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

Советы по игре Rent Please! Симулятор арендодателя для новичков

Советы по игре Rent Please! Симулятор арендодателя для новичков

Арендуйте, пожалуйста! Landlord Sim — мобильная игра-симулятор для iOS и Android. Вы будете играть за владельца жилого комплекса и начнете сдавать квартиры в аренду, чтобы улучшить интерьер своих апартаментов и подготовить их к приему арендаторов.

Последние коды защиты башни в ванной и как вводить коды

Последние коды защиты башни в ванной и как вводить коды

Получите игровой код Bathroom Tower Defense Roblox и обменяйте его на потрясающие награды. Они помогут вам улучшить или разблокировать башни с более высоким уроном.

Конструкция, обозначения и принципы работы трансформаторов

Конструкция, обозначения и принципы работы трансформаторов

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

4 способа, которыми ИИ делает умные телевизоры лучше

4 способа, которыми ИИ делает умные телевизоры лучше

От лучшего качества изображения и звука до голосового управления и многого другого — эти функции на базе искусственного интеллекта делают смарт-телевизоры намного лучше!

Почему ChatGPT лучше DeepSeek

Почему ChatGPT лучше DeepSeek

Поначалу люди возлагали большие надежды на DeepSeek. Как ИИ-чат-бот, позиционируемый как серьезный конкурент ChatGPT, он обещает интеллектуальные возможности и возможности чата.