ผมใหม่เพื่อ golang และฉันกำลังพยายามที่จะเห็นว่า encapsulation จริงๆทำงานอยู่ในองไปแล้ว
ฉันต้องต่อไปนี้โครงสร้าง
-- package a
-a_core.go
-a.go
-models.go
-- main.go
อยู่ กับพวกนางแบบไป ฉันต้อง structs สำหรับการร้องของและฟื้นคืนชีพเป็นรูปแบบ api โทรศัพท์
เป็น.ไป มีที่ว่างเปล่า struct ซึ่งเป็นส่วนตัวและเป็นการส่วนเชื่อมต่อซึ่งฉันต้องการจะเปิดเผยเรื่องกับวิธีการต่างๆ
a_core.ไป แค่มีมีธุระบางอย่างตรรกะที่จะเรียกของฉันส่วนติดต่อ implementation
งั้น,ฉันมี หลัก.ไป อยู่ไหนฉันเพิ่งโทรเรียกส่วนติดต่อสาธารณะ.
รหัสใน.อไป
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 pointer กับค่า
data := &a.MyData{
/////
}
result, err := a.MyFunc.Create(data)
ฉันเอาตามข้อผิดพลาดตอนที่ฉันทำอย่างนี้
เหมือนกันไม่กี่อาร์กิวเมนต์หนึ่งตัวอยู่ในโทรหาเพื่อนMyFunc.สร้าง
ไม่สามารถใช้ข้อมูล(ตัวแปรประเภท*น.MyData)เป็น.MyFunc ค่าในข้อโต้แย้งจะเป็น.MyFunc.สร้าง:หายไปวิธีการ CreatecompilerInvalidIfaceAssign
ได้โปรดฉันทำอะไรผิดเหรอ?