Prácticas, Calcular promedio de una lista de valores

¿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.