Open vkorbes opened 3 years ago
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/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.
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
}
Cap. 13 – Exercícios: Nível #6 – 2 https://go.dev/play/p/FtEIO5xzSRk
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
}
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
}
Exercício: Capítulo 13, Exercício 2 (Nível: 6)
Use esta thread para compartilhar sua solução, discutir o exercício com os colegas e pedir ajuda caso tenha dificuldades!