Som naozaj nový golang a snažím sa vidieť, ako zapuzdrenie naozaj funguje v go.
Mám tieto štruktúry
-- package a
-a_core.go
-a.go
-models.go
-- main.go
V modely.prejdite som structs pre žiadosti a odpovede na volanie api,
a.prejdite má prázdnu struct, čo je súkromné a verejné rozhranie, ktoré chcem oboznámiť s rôznymi metódami
a_core.ísť len má niektoré obchodnej logiky, ktorý by sa volal môj rozhranie vykonávanie
Potom som to hlavné.ísť tam, kde som stačí zavolať na verejné rozhranie.
kód v je.ísť
package a
type myFunction struct{}
type MyFunc interface {
Create(myData *MyData) (*MyData, error)
Fetch(test string)
Delete(test string)
}
//Concrete implementations that can be accessed publicly
func (a *myFunction) Create(data *MyData) (*MyData, error) {
return nil, nil
}
func (a *myFunction) Fetch(test string) {
}
func (a *myFunction) Delete(test string) {
}
V hlavnej.choď, ja volám rozhranie môj prvý vytvoriť MyData ukazovateľ s hodnotami
data := &a.MyData{
/////
}
result, err := a.MyFunc.Create(data)
Som dostať nasledujúce chybové hlásenie, keď sa mi to,
príliš málo argumentov v zavolať.MyFunc.Vytvoriť
nemôže používať údaje (premennú typu *a.MyData) ako.MyFunc hodnotu argument na.MyFunc.Vytvoriť: chýba metóda CreatecompilerInvalidIfaceAssign
Prosím, čo robím zle?