Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exercício: Capítulo 13, Exercício 2 (Nível: 6) #42

Open
vkorbes opened this issue Sep 30, 2020 · 7 comments
Open

Exercício: Capítulo 13, Exercício 2 (Nível: 6) #42

vkorbes opened this issue Sep 30, 2020 · 7 comments

Comments

@vkorbes
Copy link
Owner

vkorbes commented Sep 30, 2020

Exercício: Capítulo 13, Exercício 2 (Nível: 6)

Link para o vídeo:

Use esta thread para compartilhar sua solução, discutir o exercício com os colegas e pedir ajuda caso tenha dificuldades!

@diegoparra
Copy link

Minha solução é basicamente igual porém pra primeira função eu crio a variável já chamando a função e depois faço o print do valor:

https://play.golang.org/p/XrA1NCmZ7QJ

@an4kein
Copy link

an4kein commented Feb 25, 2021

https://play.golang.org/p/ZuSobQ3z_g7

No início fiquei com dúvidas em relação como criar uma função que receba um valor do (type of slice).. Entre colocar (x ..int) and (x []int), mas após fazer do meu jeito consegui chegar no resultado. Adicionei outra função (teste) logo apos assistir o video e sanar minha dúvida.

package main

import "fmt"

/* - Crie uma função que receba um parâmetro variádico do tipo int e retorne a soma de todos os ints recebidos;
- Passe um valor do tipo slice of int como argumento para a função;
- Crie outra função, esta deve receber um valor do tipo slice of int e retornar a soma de todos os elementos da slice;
- Passe um valor do tipo slice of int como argumento para a função.
*/

func vari(x ...int) int {
	soma := 0
	for _, i := range x {
		soma += i
	}
	return soma
}

func recebevalor(x ...int) int {
	soma := 0
	for _, i := range x {
		soma += i
	}
	return soma
}

func teste(x []int) int {
	soma := 0
	for _, v := range x {
		soma += v
	}
	return soma
}

func main() {
	fmt.Println(vari(1, 2))
	fmt.Println(recebevalor([]int{2, 2}...))
	fmt.Println(teste([]int{5, 5}))
}

Output

3
4
10

Program exited.

@alansantosmg
Copy link

My solution:

/* - Crie uma função que receba um parâmetro variádico do tipo int e
retorne a soma de todos os ints recebidos;
- Passe um valor do tipo slice of int como argumento para a função;
- Crie outra função, esta deve receber um valor do tipo slice of int e
retornar a soma de todos os elementos da slice;
- Passe um valor do tipo slice of int como argumento para a função.
*/

package main

import "fmt"

func main() {
	
	s := []int{1, 2, 3, 4, 5}

	fmt.Println(variação(s...))
	fmt.Println(variação2(s))
}

func variação(x ...int) (total int) {
	for v := range x {
		total += x[v]
	}
	return
}
func variação2(y []int) (total int) {
	for v := range y {
		total += y[v]
	}
	return
}

@wfrsilva
Copy link

Cap. 13 – Exercícios: Nível #6 – 2
https://go.dev/play/p/FtEIO5xzSRk

image

@Harsgaard
Copy link

@UdsonWillams
Copy link

Já que era o mesmo codigo, não reescrevi 2 vezes 😄

package main

import "fmt"

func main() {
	value_1 := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
	total_1 := SomaInts(value_1...)
	fmt.Println(total_1)

	value_2 := []int{10, 20, 30, 40, 50, 60, 70, 80, 90}
	total_2 := SomaSlicesInts(value_2)
	fmt.Println(total_2)

}

func SomaInts(value ...int) int {
	total := 0
	for _, v := range value {
		total += v
	}
	return total
}

func SomaSlicesInts(value []int) int {
	total := SomaInts(value...)
	return total
}

@thiagoCalazans-dev
Copy link

package main

import "fmt"

//Crie uma função que receba um parâmetro variádico do tipo int e retorne a soma de todos os ints recebidos
//Passe um valor do tipo slice of int como argumento para a função;
//Crie outra função, esta deve receber um valor do tipo slice of int e retornar a soma de todos os elementos da slice;
//Passe um valor do tipo slice of int como argumento para a função.

func main() {

	slice := []int{2, 3, 5}
	fmt.Println(somaDeVariadico(slice...))
}

func somaDeVariadico(variadico ...int) int {
	total := 0
	for _, v := range variadico {
		total += v
	}
	return total
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants