¿Cómo calcular el promedio de una lista de números en Go?
Para calcular el promedio de una lista debemos sumar todos los valores del arreglo y dividirlo entre la cantidad de elementos que lo contienen.
promedio = A[n - 1 ] + A[n - 2] ... A[0] / len(A)
Para trabajar con una lista de números podemos crear un nuevo tipo y sobre este tipo agregar la funcionalidad de sumar y contar elementos.
package main
import "fmt"
// creamos un nuevo typo que extienda un slice de numeros
type Nums []int
// agregamos la funcionalidad de sumar sus valores internos
func (nums Nums) Sumar() int {
total := 0
for _, v := range nums {
total += v
}
return total
}
// obtener el numero de elementos
func (nums Nums) Elementos() int {
return len(nums)
}
// calcular el promedio aplicando la formula
func (nums Nums) Promedio() float64 {
return float64(nums.Sumar()) / float64(nums.Elementos())
}
func main() {
nums := Nums{2, 4, 5, 6, 7, 8, 9}
fmt.Println("La suma de nums es:", nums.Sumar())
fmt.Println("El numero de elementos de nums es:", nums.Elementos())
fmt.Println("El promedio de elementos de nums es:", nums.Promedio())
}
Salida.
La suma de nums es: 41
El numero de elementos de nums es: 7
El promedio de elementos de nums es: 5.857142857142857
El crear tipos personalizados nos permite agregar la funcionalidad sobre nuestros tipos de manera que podamos seguir extendiendo mas y mas funcionalidades sobre este.