去反射声明类型结构

I wish I could recover my type of structure and declare a variable of that type .

I tried with Reflect but I can not find the way .

  package main

import (
    "fmt"
    "reflect"
)

type M struct {
    Name string
}

func main() {
    type S struct {
        *M
    }

    s := S{}
    st := reflect.TypeOf(s)
    Field, _ := st.FieldByName("M")
    Type := Field.Type
    test := Type.Elem()
    fmt.Print(test)
}

Use reflect.New with your type, here's an example of setting Name on a new instance of M struct using reflection:

package main

import (
    "fmt"
    "reflect"
)

type M struct {
    Name string
}

func main() {
    type S struct {
        *M
    }

    s := S{}
    mStruct, _ := reflect.TypeOf(s).FieldByName("M")
    mInstance := reflect.New(mStruct.Type.Elem())
    nameField := mInstance.Elem().FieldByName("Name")
    nameField.SetString("test")
    fmt.Print(mInstance)
}