Im Moment bin ich in diesem Code stecken: https://play.golang.org/p/r_HEVmpOuDPanik: Schnittstelle Umwandlung: Obj ist nicht ObjInterface: fehlende Methode X
package main
import "fmt"
type (
Collection struct {
Id string
}
CollectionInterface interface {
Process(...string)
}
)
func (this *Collection) Process(params ...string) {
this.Id = "ok"
}
func testfunc(input interface{}) CollectionInterface {
inputCol := input.(CollectionInterface)
inputCol.Process()
return inputCol
}
func makeInterface(input interface{}) interface{} {
return input
}
func main() {
test := Collection{Id: "ya"}
test.Process()
testInt := makeInterface(test)
test0 := testInt.(CollectionInterface)
test1 := testfunc(test0)
fmt.Println(test1)
}
Ich frage mich bin, wie kann ich die Schnittstelle umwandeln {} in CollectionInterface ohne die Funktion "Process" in eine statische Funktion zu ändern?
Fügen Sie ein & in Zeile 31 hinzu: Collection implementiert kein Collection Interface (nur * Collection). Und: Mach die Tour of Go noch einmal. – Volker
Ich bekomme tatsächlich die Schnittstelle von der Reflexion, ich habe gerade herausgefunden, dass die Art und Weise, um es Zeiger ist mit Add(). Interface() -Funktion zu bekommen. Ich hoffe, dass es Leuten hilft, die stecken geblieben sind, um Zeiger für Reflexionsschnittstelle zu bekommen. –