> 백엔드 개발 > Golang > Go에서 내부 패키지를 어떻게 적절하게 사용하고 가져올 수 있나요?

Go에서 내부 패키지를 어떻게 적절하게 사용하고 가져올 수 있나요?

Patricia Arquette
풀어 주다: 2024-12-17 14:13:10
원래의
851명이 탐색했습니다.

How Can I Properly Use and Import Internal Packages in Go?

Go에서 내부 패키지 사용법 이해

Go 코드를 구성할 때 내부 패키지는 프로젝트 내에서 모듈성과 캡슐화를 유지하는 방법을 제공합니다. 주어진 코드 구조에서 "내부" 패키지는 "프로젝트" 디렉토리 내에 생성됩니다.

외부 가져오기에서 내부 패키지 제외

그러나 언급한 바와 같이 , 상위 디렉터리 외부의 내부 패키지에서 가져오는 것은 불가능합니다. 내부 패키지는 내보내지지 않고 프로젝트 소스 트리 내에서만 액세스할 수 있기 때문입니다. 프로젝트 디렉터리 외부에서 외부 가져오기는 $GOPATH/src 트리에 있는 패키지에 대해서만 작동합니다.

가져오기 문제 해결

가져오기 문제를 해결하려면, 프로젝트 디렉토리는 $GOPATH/src 아래에 위치할 수 있습니다. 이렇게 하면 내부 패키지가 "project/main.go"에 있는 기본 패키지에 액세스할 수 있습니다.

Go v1.11 이상에서 모듈 지원

또는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿