import
Go는 패키지를 기본 단위로 사용하여 소스 코드를 구성하며 모든 구문 가시성은 패키지 수준에서 정의됩니다. 동일한 패키지 아래에는 각 파일이 동일한 패키지 이름에 속하기만 하면 다양한 파일이 있을 수 있습니다.
각 소스 코드 파일의 첫 번째 줄에서는
package xxx
구문을 통해 자신이 속한 패키지를 정의해야 합니다. 그런 다음 이 소스 코드 파일을 가져오는 데 사용되는 표준 패키지 또는 타사 패키지, 즉
import ( "a/b/c" "fmt" )
입니다. 표준 라이브러리는 해당 디렉토리 아래의 GO 검색을 통해 설치되며, 타사 라이브러리는 개발자가 정의한 $GOPATH
아래에서 검색됩니다. 둘 다 발견되지 않으면 컴파일러는 오류를 보고합니다. 타사 패키지를 사용하는 경우 소스 코드와 .a가 모두 설치되면 컴파일러는 소스 코드에 연결됩니다. $GOPATH
下查找。当都找不到时,编译器就会报错。在使用第三方包的时候,当源码和 .a 均已安装的情况下,编译器链接的是源码。
注意: 上面语句中 a/b/c 最后的 c 为目录名,不是 package name。
在对文件中的方法进行调用时,使用如下格式:
package.Methodxxx()
同一文件夹下的多个文件的 package 一般定义为该文件夹的名字,但是也有例外,比如上面的栗子中,c 文件下的所有文件的 package 定义为 fux,那么在调用这个文件夹下文件的方法时,只能使用 fux.Methodxxx()
,而不是 c..Methodxxx()
一个非main包在编译后会生成一个.a文件(在临时目录下生成,除非使用go install安装到 $GOROOT
或 $GOPATH
下,否则你看不到 .a),用于后续可执行程序链接使用。
vendor
Go 在 1.5 的版本加入的 vendor 的支持来做包管理。1.5 版本要设置 GO15VENDOREXPERIMENT="1"
├── d ├── mypkg | └── main.go └── vendor └── q ├── q.go
c 대신 <code>fux.Methodxxx()
만 사용할 수 있습니다. ..Methodxxx()메인 패키지가 아닌 패키지는 컴파일 후 .a 파일을 생성합니다($GOROOT
또는 $에 설치되지 않은 경우 임시 디렉터리에 생성됨). go install down을 사용하는 GOPATH
, 그렇지 않으면 후속 실행 프로그램 연결에 사용되는 .a)가 표시되지 않습니다. 🎜🎜vendor🎜🎜Go는 버전 1.5에서 패키지 관리에 대한 공급업체 지원을 추가했습니다. 버전 1.5에서는 이 기능을 지원하려면 GO15VENDOREXPERIMENT="1"
을 설정해야 하며, 버전 1.6에서는 이를 기본 매개변수 구성으로 사용합니다. 공급업체 디렉터리가 포함된 패키지 가져오기 경로에 대한 다음 규칙은 대략 다음과 같습니다. 🎜rrreee🎜위 디렉토리 구조를 main.go로 가져올 때 먼저 Vendor 디렉토리에서 검색하고, 찾을 수 없으면 $GOPATH 디렉토리에서 검색합니다. 컴파일러는 오류를 보고합니다. 🎜🎜더 많은 바둑 지식을 알고 싶다면 🎜go 언어 튜토리얼🎜 칼럼을 주목해주세요. 🎜위 내용은 Go 언어의 패키지 가져오기 관련 몇 가지 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!