Golang'da gerçekten yeniyim ve kapsüllemenin go'da gerçekten nasıl çalıştığını görmeye çalışıyorum.
Aşağıdaki yapıya sahibim
-- package a
-a_core.go
-a.go
-models.go
-- main.go
İçinde modeller.git Bir apı çağrısı için istek ve yanıtlar için yapılarım var,
a. go, çeşitli yöntemlerle ortaya çıkarmak istediğim özel ve genel bir arayüz olan boş bir yapıya sahiptir
çekirdek.go'nun arayüz uygulamamda çağrılacak bazı iş mantığı var
O zaman, benim bir anayolum var.kamu arayüzü dediğim yere git.
kod a'da. git
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) {
}
Ana bölümde.git, arayüzü ilk önce MyData işaretçisini değerlerle oluşturuyorum
data := &a.MyData{
/////
}
result, err := a.MyFunc.Create(data)
Bunu yaparken aşağıdaki hatayı alıyorum,
bir. MyFunc çağrısı için çok az argüman var.Yaratmak
veri (değişken türü *a.MyData) bağımsız değişkeninde a.MyFunc değeri olarak a.MyFunc için kullanılamaz.Oluştur: eksik yöntem CreatecompilerInvalidİfaceAssign
Lütfen neyi yanlış yapıyorum?