Введение
В Go функция, которая может принимать переменное количество аргументов, называется вариативной функцией. В этом практическом задании будет проверяться ваше понимание того, как использовать вариативные функции в Go.
This tutorial is from open-source community. Access the source code
💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал
В Go функция, которая может принимать переменное количество аргументов, называется вариативной функцией. В этом практическом задании будет проверяться ваше понимание того, как использовать вариативные функции в Go.
В этом практическом задании вам нужно реализовать функцию под названием max
, которая принимает произвольное количество целых чисел в качестве аргументов и возвращает максимальное значение.
max
должна принимать произвольное количество целых чисел в качестве аргументов.max
должна возвращать максимальное значение из целых чисел, переданных в качестве аргументов.$ go run variadic-functions.go
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10
## Другой важный аспект функций в Go - это их способность
## образовывать замыкания, о которых мы поговорим далее.
Ниже представлен полный код:
// [_Variadic functions_](https://en.wikipedia.org/wiki/Variadic_function)
// могут быть вызваны с любым количеством конечных аргументов.
// Например, `fmt.Println` - это распространенная вариативная
// функция.
package main
import "fmt"
// Вот функция, которая будет принимать произвольное количество
// `int` в качестве аргументов.
func sum(nums...int) {
fmt.Print(nums, " ")
total := 0
// Внутри функции тип `nums` эквивалентен `[]int`.
// Мы можем вызвать `len(nums)`, перебирать его с помощью `range`, и т.д.
for _, num := range nums {
total += num
}
fmt.Println(total)
}
func main() {
// Вариативные функции можно вызывать обычным способом
// с отдельными аргументами.
sum(1, 2)
sum(1, 2, 3)
// Если у вас уже есть несколько аргументов в слайсе,
// примените их к вариативной функции с помощью
// `func(slice...)` так.
nums := []int{1, 2, 3, 4}
sum(nums...)
}
В этом практическом задании вы узнали, как использовать вариативные функции в Go. Вы реализовали функцию под названием max
, которая принимает произвольное количество целых чисел в качестве аргументов и возвращает максимальное значение.