저는 golang을 처음 접했고 현재 패키지와 패키지 가져오기 작동 방법을 조사하고 있습니다. 이번 수입에 관해 몇 가지 질문이 있습니다. 나는 이 게시물을 읽고 있습니다(좋아요가 7,000개가 넘었기 때문에 정확하다고 생각합니다. + 내가 입력할 때 Google이 제공하는 첫 번째 항목입니다 golang 包
).
제가 이해하지 못하는 부분을 설명하기 위해 먼저 프로젝트 구조가 어떤지, 모든 파일의 내용은 무엇인지 적어보겠습니다.
으아악보시다시피 3개의 패키지(메인 패키지를 포함해 4개의 패키지)로 구성된 모듈이 있습니다. 모든 패키지의 내용은 다음과 같습니다.
pkg1.go의 내용:
으아악pkg2.go의 내용:
으아악mypkg의 내용:
으아악main.go의 내용:
으아악그러므로 main.go
包含 pkg1
和 pkg2
,并且 pkg1
和 pkg2
都包含 mypkg
. 내가 인용한 기사에는 다음과 같은 내용이 나와 있습니다(굵은 글씨):
이를 염두에 두고 내 프로그램의 출력은 다음과 같을 것으로 예상됩니다.
으아악저는 다음 단계를 따르기를 기대합니다:
prom
제 경우(2.1.1)prom
제 경우에는 (3.1.1)대신 다음과 같은 결과가 출력됩니다.
으아악mypkg 첫 번째 가져오기 중에 한 번만 초기화 되는 것 같나요? ! 또한 전역 변수 prom
在 pkg1 和 pkg2 中的地址是相同的(在本例中为 0x8fe360
는 pkg1과 pkg2에서 동일한 주소를 갖습니다(이 경우 0x8fe360
).
제 질문은:
mypkg
在 pkg1
中初始化一次,在 pkg2
내가 읽은 내용이 잘못된 경우 Go의 패키지 및 모듈에 대한 좋은 기사가 있는 사람이 있나요?
main
위 내용은 golang 패키지 가져오기 프로세스는 어떻게 작동하나요? 동일한 모듈에서 패키지를 여러 번 초기화하는 방법이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!