Go 코드를 구성할 때 내부 패키지는 프로젝트 내에서 모듈성과 캡슐화를 유지하는 방법을 제공합니다. 주어진 코드 구조에서 "내부" 패키지는 "프로젝트" 디렉토리 내에 생성됩니다.
그러나 언급한 바와 같이 , 상위 디렉터리 외부의 내부 패키지에서 가져오는 것은 불가능합니다. 내부 패키지는 내보내지지 않고 프로젝트 소스 트리 내에서만 액세스할 수 있기 때문입니다. 프로젝트 디렉터리 외부에서 외부 가져오기는 $GOPATH/src 트리에 있는 패키지에 대해서만 작동합니다.
가져오기 문제를 해결하려면, 프로젝트 디렉토리는 $GOPATH/src 아래에 위치할 수 있습니다. 이렇게 하면 내부 패키지가 "project/main.go"에 있는 기본 패키지에 액세스할 수 있습니다.
또는 Go v1.11 이상에 모듈이 도입되면서 go.mod 파일을 생성하여 프로젝트에 대한 모듈을 정의할 수 있습니다. 이 파일은 프로젝트 내 각 모듈의 위치를 지정합니다. 설정 방법의 예는 다음과 같습니다.
project/ go.mod main.go internal/ bar/ bar.go go.mod foo/ foo.go go.mod
go.mod for project/internal/bar:
module bar go 1.14
bar. 이동:
package bar import "fmt" // Bar prints "Hello from Bar" func Bar() { fmt.Println("Hello from Bar") }
go.mod 프로젝트/내부/foo:
module foo go 1.14
foo.go:
package foo import "fmt" // Foo prints "Hello from Foo" func Foo() { fmt.Println("Hello from Foo") }
main.go:
package main import ( "project/internal/bar" "project/internal/foo" ) func main() { bar.Bar() foo.Foo() }
이 설정에서 go.mod 파일은 다음에 대한 모듈 경로와 종속성 정보를 정의합니다. 각 내부 패키지. 교체 문을 사용하면 내부 패키지가 표준 $GOPATH/src 트리 외부에 있더라도 내부 패키지를 찾을 수 있는 위치를 Go가 알 수 있습니다.
이 접근 방식을 사용하면 내부 패키지를 사용하여 코드를 쉽게 구성하고 원활하게 액세스할 수 있습니다. 프로젝트 내에서 모듈성과 접근성을 모두 제공합니다.
위 내용은 Go에서 내부 패키지를 어떻게 적절하게 사용하고 가져올 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!