두 개의 패키지가 같은 디렉터리에 있을 수 있나요?
라이브러리와 명령줄 인터페이스(CLI)가 모두 필요한 프로젝트를 개발할 때 동일한 디렉토리에 존재하는 두 패키지 사이에 충돌이 발생하는 것은 흔한 일입니다. 진입점으로 "func main"이 있는 "main"이라는 패키지에 대한 Go 컴파일러의 요구 사항으로 인해 라이브러리와 CLI 모두에 대해 별도의 패키지를 갖는 것이 불가능하다고 생각됩니다.
해결책 : 중첩된 패키지 구조
그러나 두 패키지를 모두 동일한 디렉터리 내의 새 폴더로 이동하여 이 문제를 해결하는 방법이 있습니다. "main.go" 파일. 중요한 것은 "$GOPATH" 내의 올바른 경로에서 새 패키지를 가져오는 것입니다.
예:
업데이트된 디렉터리 구조를 고려하세요.
"main.go"의 중첩된 패키지에서 새 패키지를 가져옵니다. 경로:
"a.go"에서 라이브러리에 대한 함수 정의:
빌드 및 실행:
현재 , 프로젝트를 성공적으로 빌드하고 실행할 수 있습니다.
이 솔루션을 사용하면 라이브러리와 (패키지 "a")와 CLI(패키지 "main")를 같은 디렉터리에 배치하여 같은 디렉터리에 같은 이름을 가진 두 개의 패키지가 있을 때 발생하는 충돌을 해결했습니다.
위 내용은 Go 프로젝트의 동일한 디렉터리에 라이브러리와 CLI가 모두 있을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!