Ich lerne gerade Go, und ich habe dieses einfache und grobe Inventarprogramm gemacht, nur um mit Strukturen und Methoden zu experimentieren, um zu verstehen, wie sie funktionieren. In der Treiberdatei versuche ich eine Methode von und einen Artikeltyp aus der Artikelliste des Kassierertyps aufzurufen. Meine Methode verfügt über Zeigerempfänger, um die Strukturen direkt zu verwenden, anstatt Kopien zu erstellen. Wenn ich das Programm starte, erhalte ich den Fehler .\driver.go:11: cannot call pointer method on f[0]
.\driver.go:11: cannot take the address of f[0]
Inventar.go:
%Vor%Driver.go:
%Vor% Der Teil des Codes, der wirklich zu meinem Problem gehört, ist die Funktion GetAmount
in inventory.go
und die Druckanweisung in driver.go
Während die anderen Antworten nützlich sind, denke ich, dass es in diesem Fall am besten ist, nicht-mutierende Funktionen zu machen, nicht einen Zeiger nehmen:
%Vor%