Prácticas, Suma de valores de una matriz bidimensional

¿Cómo sumar todos los valores de una matriz bidimensional en Go?

Para sumar los valores de una matriz bidimensional en Go vamos a implementar el siguiente pseudocódigo.

def sumar_matrix_bidimensional(A):
    total = 0
    for i = 0 to len(A)
        for j = 0 to len(A[i])
            total += A[i][j]

    return total

En Go podemos crear un tipo personalizado, este a partir de una matriz muldimensional.

package main

import (
	"fmt"
)

// creamos un tipo personalizado que almacene una matriz bidimensional
type Nums [][]int

// agregamos la funcionalidad de sumar todos sus valores
func (nums Nums) Sumar() int {

	total := 0

	for i := 0; i < len(nums); i++ {

		for j := 0; j < len(nums[i]); j++ {
			total += nums[i][j]
		}
	}

	return total
}

func main() {

	nums := Nums{
		[]int{2, 3, 4},
		[]int{6, 5, 3},
		[]int{12, 3, 2},
	}

	fmt.Println(nums)

	fmt.Println("La suma de todos los valores es:", nums.Sumar())

}

Salida.

[[2 3 4] [6 5 3] [12 3 2]]
La suma de todos los valores es: 40