Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

Rest parametrs em javascript

Hola! seria igual o Rest parametrs, em javaScript ?

2 respostas

Olá, Flávio!

No JavaScript, o conceito de rest parameters é semelhante ao de variadic functions em Go. Ambos permitem que uma função receba um número indeterminado de parâmetros.

No JavaScript, os rest parameters são representados pelo uso de três pontos antes do nome do parâmetro, como no exemplo a seguir:

function somando(...numeros) {
  let resultadoDaSoma = 0;
  for (let numero of numeros) {
    resultadoDaSoma += numero;
  }
  return resultadoDaSoma;
}

console.log(somando(1)); // 1
console.log(somando(1, 1)); // 2
console.log(somando(1, 1, 1)); // 3
console.log(somando(1, 1, 2, 4)); // 8

No código acima, a função somando recebe uma quantidade indeterminada de parâmetros e realiza a soma de todos eles.

Já em Go, as variadic functions são criadas precedendo o tipo do argumento com reticências, como no exemplo a seguir:

func somando(numeros ...int) int {
  resultadoDaSoma := 0
  for _, numero := range numeros {
    resultadoDaSoma += numero
  }
  return resultadoDaSoma
}

fmt.Println(somando(1)) // 1
fmt.Println(somando(1, 1)) // 2
fmt.Println(somando(1, 1, 1)) // 3
fmt.Println(somando(1, 1, 2, 4)) // 8

Perceba que a declaração do parâmetro numeros utiliza as reticências: numeros ...int.

Portanto, tanto no JavaScript quanto em Go, é possível criar funções que recebem uma quantidade indeterminada de parâmetros.

Espero ter ajudado e bons estudos!

thanks