Im Moment habe ich den folgenden CodeHolen Struktur von Funktionstyp
func (r *Router) Get(path string, controller interface{}) {
...
t := reflect.TypeOf(controller)
...
}
, dass die folgenden
Route.Get("/", controllers.Test.IsWorking)
Das zweite Argument genannt tut, ist im Grunde diese
type Test struct {
*Controller
Name string
}
func (t Test) IsWorking() {
}
type Controller struct {
Method string
Request *http.Request
Response http.ResponseWriter
Data map[interface{}]interface{}
}
ich will Holen Sie sich die Struktur, auf die sich die Funktion bezieht. eine neue Struktur dieses Typs erstellen und die Funktion aufrufen, so zum Beispiel
controllers.Test.IsWorking
eine Test-Struktur erstellen und rufen IsWorking()
Ich denke nicht, das ist, was ich suche. oder vielleicht ist es aber gut. Ich möchte die Struktur erhalten, auf die sich die Funktion bezieht, die Felder dieser Struktur ausfüllen und die Funktion aufrufen, die übergeben wird. Dies ist, um einen neuen Controller zu erstellen und die Felder Nein? Ich meine, das ist auch ein Teil dessen, was ich suche. –
@AlvaroCarvajalNakosmai: Sie sagten, Ihre Methode erwartet keinen Zeiger, aber Sie können den Wert einer Struktur nicht ändern, wenn Sie keinen Zeiger darauf haben. – JimB
Stimmt, ich bin heute ein bisschen abseits. Ich möchte nicht den Wert einer Struktur bearbeiten, sondern erstellen Sie es auf der Laufzeit, wenn die Funktion Controller.Test.IsWorking eine Test-Struktur erstellen und rufen Sie die Test.IsWorking-Funktion mit der neu erstellten Struktur, die ich die Felder setzen kann ich denke, –