मैं हूँ वास्तव में नया करने के लिए golang और मैं कोशिश कर रहा हूँ देखने के लिए कैसे encapsulation वास्तव में काम करता है में जाना.
मैं निम्नलिखित संरचना है
-- package a
-a_core.go
-a.go
-models.go
-- main.go
में मॉडल.जाने मैं structs के लिए अनुरोध और प्रतिक्रियाओं के लिए एक एपीआई कॉल,
एक.जाना है एक खाली संरचना है, जो निजी और सार्वजनिक इंटरफेस है, जो मैं करना चाहते हैं को बेनकाब करने के लिए विभिन्न तरीकों के साथ
a_core.जाना बस कुछ व्यापार तर्क हो जाएगा जो कहा जाता है में इंटरफ़ेस का कार्यान्वयन
तो, मैं एक मुख्य.जाना है , जहां मैं सिर्फ कॉल सार्वजनिक इंटरफेस है.
कोड में से एक.जाने
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) {
}
में मुख्य.जाओ, मैं कॉल इंटरफ़ेस मेरी पहली पैदा MyData सूचक के साथ मूल्यों
data := &a.MyData{
/////
}
result, err := a.MyFunc.Create(data)
मैं निम्नलिखित त्रुटि मिलती है जब मैं यह कर,
बहुत कुछ तर्कों में कॉल करने के लिए एक.MyFunc.बनाएँ
का उपयोग नहीं कर सकते डेटा (चर के प्रकार *एक.MyData) के रूप में एक.MyFunc मूल्य में तर्क करने के लिए एक.MyFunc.बनाएँ: लापता विधि CreatecompilerInvalidIfaceAssign
कृपया क्या मैं गलत कर रहा हूँ?