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