Buscar las llaves de casa, el mando de la tele y datos en Slices es algo que harás varias veces en tu día a día, intenta usar el mismo lugar para las llaves y el mando.
Ya te puedes ir…. Chaouuuu
Hacer operaciones aritméticas como la suma es algo que vamos a hacer a frecuentemente cuando programamos, el Slice es una estructura que usaremos en nuestro día a día con Go.
¿Cómo sumar todos los valores de un Slice?
Debemos recorrer todo el Slice para saber que valor contiene cada índice para sumarlo a nuestro total
Algoritmo para sumar los valores de Slice de int
package main
import "fmt"
func main() {
datos := []int{1, 2, 3, 4, 5, 6}
total := 0
for _, valor := range datos {
total += valor
}
fmt.Println(total)
}
En el ejemplo anterior usamos range para recorrer el slice y guardamos el valor en la variable valor, pero normalmente vamos a encontrar que
package main
import "fmt"
func main() {
datos := []int{1, 2, 3, 4, 5, 6}
total := 0
for _, valor := range datos {
total += valor
}
fmt.Println(total)
}
Sumar las edades de
package main
import "fmt"
func main() {
adedadMiFamilia := []int{1, 2, 3, 4, 5, 6}
total := 0
for _, v := range adedadMiFamilia {
total += v
}
fmt.Println(total)
}
21
func Suma(numbers []int) int {
total := 0
for _,valor := range numbers {
total = v + total
}
return total
}
Ejemplo 1 Como buscar un número en un Slice de Go
Tomaremos un valor(pregunta int) para buscar en la lista (billetes []int)si existe el billete con ese valor, la información que nos devuelve la función(buscarBillete) la guardaremos en una variable(respuesta) y luego la imprimimos.
Actualmente Europa tiene billetes con valores de 5, 10, 20, 50, 100, 200 Euros.
func SumSexy(numbers []int) int {
if len(numbers) == 0 {
return 0
}
return numbers[0] + SumSexy(numbers[1:])
}
Ejemplo 2 Como buscar texto en un Slice de Go
Este ejemplo es similar al anterior lo que cambia es el tipo de dato que vamos a buscar, ahora tu debes elegir el nombre de la función y las variables.
Arquitecturas: Clásica, Románica, Gótica, Renacentista, Barroca, Rococó, Modernista, Moderna.
package main
import "fmt"
func main() {
buscoTipo := "Clásica"
arquitecturas := []string{"Clásica", "Románica", "Gótica", "Renacentista", "Barroca", "Rococó", "Modernista", "Moderna"}
respuesta := buscarBillete(buscoTipo, arquitecturas)
fmt.Println(respuesta)
}
func buscarBillete(busqueda string, arqRas []string) bool {
for _, arq := range arqRas {
if arq == busqueda {
return true
}
}
return false
}