Как получить доступ к полям интерфейсного типа если знаю, что там за структура?

Есть

type Mover interface {
    Move()
}

type M struct {
    Name string
    Age  int
}

func doMoving(mover Mover) {
    mover.Move()
    // Если я знаю, что у меня под mover-ом структура M 
    //то как я могу получить в этом месте доступ к полям Name и Age?
    // Чтобы можно было как то так:
    // fmt.Println(mover.Name)
}

Ответы (1 шт):

Автор решения: Quester

Как то сразу сам нашел ответ. Через type assertion это можно сделать.

type Mover interface {
    Move()
}

type M struct {
    Name string
    Age  int
}

func doMoving(mover Mover) {
    mover.Move()
    fmt.Println(mover.(M).Age)
    // Если я знаю, что у меня под mover-ом структура M то как я могу получить в этом месте доступ к полям Name и Age?
}

func (m M) Move() {

}
→ Ссылка