할 수 없는 이유는 무엇 전화와 인터페이스의 컬렉션에서 방법을 기본 패키지

0

질문

내가 정말 새로운작하고 나가려고 노력한 캡슐화는 정말에서 작동합니다.

나는 다음과 같은 구조

-- package a
    -a_core.go
    -a.go
    -models.go

-- main.go

에서는 모델입니다.가서 내가 있는 구조체에 대한 요청과 응답에 대한 api 를 통화

니다.이동 이 빈 구조체,개인 및 공용 인터페이스,나타내고자 하는 각종 방법으로

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)

나는 다음과 같은 오류가 발생 할 때 이

너무 인수에 호출.다.성

를 사용할 수 없는 데이터를(형식의 변수*a.MyData)로.다 값을 인수.다.성:누락 방법 CreatecompilerInvalidIfaceAssign

시기 바랍 무엇이 잘못된 것입니까?

go interface struct visual-studio-code
2021-11-20 22:23:03
1

최고의 응답

1

여기에는 예입니다
참고로 이름에서 대문자가 공공에서 소문자 개인(참조하십시오 https://tour.golang.org/basics/3 )

./갈-를 들어 있습니다.가

package main

import "go-example/animal"

func main() {
    var a animal.Animal
    a = animal.Lion{Age: 10}
    a.Breathe()
    a.Walk()
}

./가 example/동물/동물입니다.가

package animal

import "fmt"

type Animal interface {
    Breathe()
    Walk()
}

type Lion struct {
    Age int
}

func (l Lion) Breathe() {
    fmt.Println("Lion breathes")
}

func (l Lion) Walk() {
    fmt.Println("Lion walk")
}
2021-11-20 23:23:09

내가 노력하고 있을 참조하려면 이에서 다른 패키지입니다. 따라서,왜 내가 할 수 있습니다.interfacename.를 지고 방법이 이미 구현 빈 구조체 myFunction
gbubemi smith

업데이트 내 응답
Michael D.

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................