Błąd returna w funkcji

0

Cześć,
od dwóch dni piszę program w języku Go w którym muszę:
a)Stworzyć obiekt Macierzy nieosobliwej 4x4
b)dodać do tego programu metody w postaci podstawowych operacji matematycznych (dodawanie,odejmowanie,mnożenie)
c)Zdefiniować metodę String() do obiektu która wyświetli macierz w formie tekstowej (w formie tabelki)

Obiekt stworzyłem w strukturze. Dodałem dwie macierze oraz stworzyłem funkcję która na razie tylko dodaję te macierze .
Mój problem to błąd wywołany przez return który zawarty jest w tej funkcji dodawania macierzy: cannot use Matrix (type int) as type Matrix in return argument
Dodatkowo nie bardzo wiem jak można zastosować tę metodę string() z tego co mi wiadomo string to typ danych a nie funkcja wypisująca coś za pomocą tabel.

Wklejam też mój kod jest on jeszcze napisany w najprostszym stylu chciałem sprawdzić czy dodawanie będzie działało,dopiero później chciałem zmniejszać objętość kodu.

 
package main

import "fmt"

type Matrix struct {
m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12 int 
}

func (m Matrix) Add(a Matrix) (Matrix)  {
Matrix := m.m1 + a.m1 + m.m2 + a.m2 + m.m3 + a.m3 + m.m4 +a.m4 + m.m5 + a.m5 + m.m6 + a.m6 + m.m7 + a.m7 + m.m8 + a.m8 + m.m9 + a.m9 + m.m10 + a.m10 + m.m11 + a.m11 + m.m12 + a.m12
return Matrix
}


func main() {

	Matrix1 := Matrix{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
	
	Matrix2 := Matrix{12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
	
	Matrix3 := Matrix1.Add(Matrix2)

	fmt.Println(Matrix3)
	}

Z góry dziękuję za pomoc.

1

Ja w go nie pisze, ale ta twoja funkcja dodająca nie ma sensu. Przecież ty tam zsumowałeś wszystkie elementy dwóch macierzy DO JEDNEGO INTA. A chyba jednak chodziło o to żeby stworzyć wynikową macierz i jako jej parametry ustawić sumy odpowiadających współrzędnych?

Czyli jakieś
MatrixResult := Matrix{m.m1 + a.m1, m.m2 + a.m2,...}

1 użytkowników online, w tym zalogowanych: 0, gości: 1