Poniżej podaje uproszczony kod, który zwraca błąd.
Proszę o informację dlaczego pojawia się błąd i jak można naprawić poniższy kod.
Ps.
Oczywiście można zmienić kod żeby metoda nie zwracała struktury, ale chciałbym żeby metody wpisywać w jednym ciągu x.methoda1().metoda2().metoda3()
Mało tu wątków odnośnie tego języka, mam nadzieję że jednak znajdą się osoby, które są w stanie pomóc.
Kod
package main
import (
"testing"
)
func TestDog(t *testing.T) {
var x = &dog{}
x.getArgs().setColor("red")
}
type dog struct {
arguments *arguments
}
type arguments struct {
color string
}
func (s *dog)getArgs() *arguments {
return s.arguments
}
func (a *arguments)setColor(color string) *arguments {
a.color = color
return a
}
Otrzymuję taki błąd:
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x54b260]