Go 언어의 패키지란 무엇인가요?
패키지는 여러 Go 소스 코드의 모음이며 고급 코드 재사용 솔루션입니다. Go 언어 패키지는 디렉토리 트리의 조직적 형태를 사용합니다. 일반적으로 패키지 이름은 소스 파일이 있는 디렉토리의 이름입니다. 패키지 이름의 정의에는 패키지가 포함되지 않습니다. 디렉터리 경로이지만 패키지가 참조됩니다. 일반적으로 전체 경로 참조를 사용합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
Go 언어는 패키지를 사용하여 소스 코드를 구성합니다. 패키지는 여러 Go 소스 코드의 모음이며 고급 코드 재사용 솔루션입니다. Go 언어는 fmt, os, io 등과 같은 많은 내장 패키지를 제공합니다.
Golang의 패키지와 폴더는 일대일 대응을 가지며 사용하기 전에 GOPATH 디렉터리에 생성되어야 합니다. Golang의 패키지가 다른 패키지의 내용을 참조해야 하는 경우 사용하기 전에 import 키워드를 사용하여 가져와야 합니다.
모든 소스 코드 파일은 특정 패키지에 속해야 하며, 소스 코드 파일에서 유효한 코드의 첫 번째 줄은 현재 속한 패키지를 선언하는 package pacakgeName
문이어야 합니다. package pacakgeName
语句,通过该语句声明自己所在的包。
包的基本概念
Go语言的包借助了目录树的组织形式,一般包的名称就是其源文件所在目录的名称,虽然Go语言没有强制要求包名必须和其所在的目录名同名,但还是建议包名和所在目录同名,这样结构更清晰。
包可以定义在很深的目录中,包名的定义是不包括目录路径的,但是包在引用时一般使用全路径引用。比如在GOPATH/src/a/b/
下定义一个包 c。在包 c 的源码中只需声明为package c
,而不是声明为package a/b/c
,但是在导入 c 包时,需要带上路径,例如import "a/b/c"
。
包的习惯用法:
包名一般是小写的,使用一个简短且有意义的名称。
包名一般要和所在的目录同名,也可以不同,包名中不能包含- 等特殊符号。
包一般使用域名作为目录名称,这样能保证包名的唯一性,比如 GitHub 项目的包一般会放到
GOPATH/src/github.com/userName/projectName
目录下。包名为 main 的包为应用程序的入口包,编译不包含 main 包的源码文件时不会得到可执行文件。
一个文件夹下的所有源码文件只能属于同一个包,同样属于同一个包的源码文件不能放在多个文件夹下。
包的导入
要在代码中引用其他包的内容,需要使用 import 关键字导入使用的包。具体语法如下:
import "包的路径"
注意事项:
import 导入语句通常放在源码文件开头包声明语句的下面;
导入的包名需要使用双引号包裹起来;
包名是从
GOPATH/src/
Go 언어 패키지는 디렉토리 트리의 구성 형식을 사용하지만 일반적으로 패키지 이름은 소스 파일이 있는 디렉토리 이름입니다. 패키지 이름이 해당 패키지가 있는 디렉터리와 동일해야 한다고 규정하지는 않습니다. 그러나 패키지 이름과 해당 디렉터리가 동일한 이름을 갖는 것이 좋습니다. 구조가 더 명확해졌습니다.
패키지는 매우 깊은 디렉터리에 정의될 수 있습니다. 패키지 이름 정의에는 디렉터리 경로가 포함되지 않지만 일반적으로 패키지를 참조할 때 전체 경로가 사용됩니다. 예를 들어GOPATH/src/a/b/
아래에 패키지 c를 정의합니다. c 패키지의 소스 코드에서는 package a/b/c
대신 package c
로 선언하면 됩니다. 그러나 c 패키지를 가져올 때는 다음이 필요합니다. 예를 들어 import "a/b/c"
를 가져옵니다. 패키지 관용어 사용법: 패키지 이름은 일반적으로 소문자이며 짧고 의미 있는 이름을 사용합니다. 패키지 이름은 일반적으로 해당 패키지가 위치한 디렉터리와 동일하거나 다를 수 있습니다. 패키지 이름에는 -와 같은 특수 기호가 포함될 수 없습니다.
- 패키지는 일반적으로 도메인 이름을 디렉터리 이름으로 사용하여 패키지 이름의 고유성을 보장합니다. 예를 들어 GitHub 프로젝트의 패키지는 일반적으로
GOPATH/src/github.com/userName/에 배치됩니다. 프로젝트명
디렉토리. - main이라는 패키지는 애플리케이션의 엔트리 패키지입니다. 메인 패키지가 포함되지 않은 소스 코드 파일을 컴파일하면 실행 파일을 얻을 수 없습니다.
- 한 폴더의 모든 소스 코드 파일은 동일한 패키지에만 속할 수 있습니다. 동일한 패키지에 속하는 소스 코드 파일은 여러 폴더에 배치할 수 없습니다.
Package import코드에서 다른 패키지의 내용을 참조하려면 import 키워드를 사용하여 사용된 패키지를 가져와야 합니다. 구체적인 구문은 다음과 같습니다.
import "lab/test" import "database/sql/driver" import "database/sql"
import 가져오기 문은 일반적으로 소스 코드 파일 시작 부분의 패키지 선언문 아래에 배치됩니다.
가져온 패키지 이름은 이중으로 묶어야 합니다. quotes;GOPATH/src/
뒤에서 /를 사용하여 경로를 구분하여 계산됩니다. 🎜🎜🎜🎜패키지 가져오기 경로 🎜🎜🎜🎜패키지의 참조 경로를 작성하는 방법에는 전체 경로 가져오기와 상대 경로 가져오기 두 가지가 있습니다. 🎜🎜🎜전체 경로 가져오기🎜🎜🎜패키지의 절대 경로는 아래와 같이 GOROOT/src/ 또는 GOPATH/src/ 이후 패키지의 저장 경로입니다. 🎜// 相对路径导入 import "../a"
// 全路径导入 import "lab/a"
패키지 초기화 프로그램은 기본 함수가 참조하는 패키지부터 시작하여 다른 패키지를 참조하지 않는 패키지를 찾을 때까지 단계별로 패키지 참조를 검색하고 마지막으로 패키지 참조의 방향성 비순환 그래프를 생성합니다.
Go 컴파일러는 방향성 비순환 그래프를 트리로 변환한 다음 트리의 리프 노드부터 시작하여 계층별로 패키지 계층을 초기화합니다.
단일 패키지의 초기화 과정은 위 그림과 같습니다. 상수가 먼저 초기화되고, 전역 변수가 초기화되고, 마지막으로 패키지의 init 함수가 실행됩니다.
Golang 패키지 사용법 요약
Go 언어의 소스 코드 구성은 패키지 형태입니다. Go 언어의 기본 기능은 기본 패키지의 시스템에서만 실행할 수 있습니다.
【관련 추천: Go 비디오 튜토리얼, 프로그래밍 교육】
위 내용은 Go 언어의 패키지란 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Go Language의 부동 소수점 번호 작동에 사용되는 라이브러리는 정확도를 보장하는 방법을 소개합니다.

Go Crawler Colly의 대기열 스레딩 문제는 Colly Crawler 라이브러리를 GO 언어로 사용하는 문제를 탐구합니다. � ...

Go Language의 문자열 인쇄의 차이 : println 및 String () 함수 사용 효과의 차이가 진행 중입니다 ...

Go Language에서 메시지 대기열을 구현하기 위해 Redisstream을 사용하는 문제는 Go Language와 Redis를 사용하는 것입니다 ...

골란드의 사용자 정의 구조 레이블이 표시되지 않으면 어떻게해야합니까? Go Language 개발을 위해 Goland를 사용할 때 많은 개발자가 사용자 정의 구조 태그를 만날 것입니다 ...

Go Language는 효율적이고 확장 가능한 시스템을 구축하는 데 잘 작동합니다. 장점은 다음과 같습니다. 1. 고성능 : 기계 코드로 컴파일, 빠른 달리기 속도; 2. 동시 프로그래밍 : 고어 라틴 및 채널을 통한 멀티 태스킹 단순화; 3. 단순성 : 간결한 구문, 학습 및 유지 보수 비용 절감; 4. 크로스 플랫폼 : 크로스 플랫폼 컴파일, 쉬운 배포를 지원합니다.

GO의 어떤 라이브러리가 대기업이나 잘 알려진 오픈 소스 프로젝트에서 개발 했습니까? GO에 프로그래밍 할 때 개발자는 종종 몇 가지 일반적인 요구를 만납니다.

VSCODE 사용자의 GOLANG 제네릭 기능 유형 제약 조건을 자동으로 삭제하면 VSCODE를 사용하여 Golang 코드를 작성할 때 이상한 문제가 발생할 수 있습니다. 언제...
