在另一个结构上访问函数

Using Go 1.11.x with the echo framework.

I have the following struct and function

type AccountController struct {
  ....
}

func (c *AccountController) ActiveAccountID() int {
  ....
  return 5
}

Now I want to access the ActiveAccountID from another struct, this is how i did it,

type TestController struct {
   Account *AccountController
}

func (c *TestController) AddData(ec echo.Context) error {
  ....
  id := c.Account.ActiveAccountID()     
  ....
}

But when I print / use the id var, it just gives me a memory pointer error?

I have tried the account controller to remove the pointer but i still got the memory pointer issue. So what am I doing wrong?

Thanks,

Note the structure of your struct

type TestController struct {
   Account *AccountController
}

Account is a pointer. It's inititalized to nil, so if you never set it to point to something, it will always be nil, and you will get a nil pointer dereference error when you try to call a method on it like this

// c *TestController
c.Account.ActiveAccountID()

How/when you set it depends on your use case.

Also depending on your usecase, you can change it from a pointer to an embedded struct

type TestController struct {
   Account AccountController
}

This way it's always inside the struct, but if you assign it from somewhere else it will be copied. Depending on your usecase, that might be undesireable.