Как получить доступ к полям интерфейсного типа если знаю, что там за структура?
Есть
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() {
}