질문:
"내부" 패키지를 사용하여 Go 코드를 효과적으로 구성하려면 어떻게 해야 하나요? ?
이니셜 문제:
프로젝트를 GOPATH 외부에 배치했음에도 불구하고 상대 경로(예: "./internal/foo|bar")를 사용하지 않는 한 main.go에서 내부 패키지 가져오기가 실패합니다.
모듈 소개:
Go에 모듈을 도입하면서 v1.11 이상에서는 프로젝트를 $GOPATH/src 안에 배치할 필요가 더 이상 필요하지 않습니다. 대신 go.mod 파일을 생성하여 각 모듈의 위치를 지정해야 합니다.
예:
다음 프로젝트 구조를 고려하세요.
project/ go.mod main.go internal/ bar/ bar.go go.mod foo/ foo.go go.mod
go.mod 파일:
내부 패키지의 go.mod 파일은 간단합니다.
module bar go 1.14
module foo go 1.14
내부 패키지의 코드:
// bar.go package bar import "fmt" // Bar prints "Hello from Bar" func Bar() { fmt.Println("Hello from Bar") } // foo.go package foo import "fmt" // Foo prints "Hello from Foo" func Foo() { fmt.Println("Hello from Foo") }
main.go:
// main.go package main import ( "internal/bar" "internal/foo" ) func main() { bar.Bar() foo.Foo() }
go.mod 프로젝트 파일:
프로젝트 go.mod 파일은 Go에 내부 패키지와 해당 위치를 알려줍니다.
module project go 1.14 require internal/bar v1.0.0 replace internal/bar => ./internal/bar require internal/foo v1.0.0 replace internal/foo => ./internal/foo
중요 사항:
실행:
이제 main.go 파일을 실행하면 print:
Hello from Bar Hello from Foo
이 예는 모듈을 사용하여 Go 프로젝트 내에서 내부 패키지를 효과적으로 사용하는 방법을 보여줍니다.
위 내용은 모듈이 포함된 내부 패키지를 사용하여 Go 코드를 효과적으로 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!