Funções Variádicas em Go

GolangGolangBeginner
Pratique Agora

This tutorial is from open-source community. Access the source code

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

Em Go, uma função que pode receber um número variável de argumentos é chamada de função variádica (variadic function). Este laboratório testará sua compreensão de como usar funções variádicas em Go.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/FunctionsandControlFlowGroup(["Functions and Control Flow"]) go/FunctionsandControlFlowGroup -.-> go/functions("Functions") subgraph Lab Skills go/functions -.-> lab-15528{{"Funções Variádicas em Go"}} end

Funções Variádicas (Variadic Functions)

Neste laboratório, você precisa implementar uma função chamada max que recebe um número arbitrário de inteiros como argumentos e retorna o valor máximo.

  • A função max deve receber um número arbitrário de inteiros como argumentos.
  • A função max deve retornar o valor máximo dos inteiros passados como argumentos.
$ go run variadic-functions.go
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10

## Outro aspecto chave das funções em Go é sua capacidade
## de formar closures, que veremos a seguir.

A seguir, o código completo:

// [_Funções variádicas_](https://en.wikipedia.org/wiki/Variadic_function)
// podem ser chamadas com qualquer número de argumentos finais.
// Por exemplo, `fmt.Println` é uma função variádica comum.

package main

import "fmt"

// Aqui está uma função que receberá um número arbitrário
// de `int`s como argumentos.
func sum(nums ...int) {
	fmt.Print(nums, " ")
	total := 0
	// Dentro da função, o tipo de `nums` é
	// equivalente a `[]int`. Podemos chamar `len(nums)`,
	// iterar sobre ele com `range`, etc.
	for _, num := range nums {
		total += num
	}
	fmt.Println(total)
}

func main() {

	// Funções variádicas podem ser chamadas da maneira usual
	// com argumentos individuais.
	sum(1, 2)
	sum(1, 2, 3)

	// Se você já tem múltiplos argumentos em uma slice,
	// aplique-os a uma função variádica usando
	// `func(slice...)` assim.
	nums := []int{1, 2, 3, 4}
	sum(nums...)
}

Resumo

Neste laboratório, você aprendeu como usar funções variádicas (variadic functions) em Go. Você implementou uma função chamada max que recebe um número arbitrário de inteiros como argumentos e retorna o valor máximo.

OSZAR »