go 언어에는 메인 패키지가 있어야 합니다. Go 언어는 컴파일된 정적 언어이므로 Go 언어 프로그램을 실행하기 전에 Go 언어 실행 프로그램을 생성하기 위해 바이너리 실행 파일로 컴파일해야 하며, 이 패키지에는 main이라는 패키지가 있어야 합니다. 그리고 주요 기능은 단 하나뿐입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
Go 프로그램은 패키지를 서로 연결하여 구성됩니다. 패키지는 패키지에 속하는 상수, 유형, 변수, 함수를 정의하는 소스 파일로 구성됩니다(동일 패키지의 모든 파일에서 액세스할 수 있으며 내보내기를 통해 다른 패키지에서도 사용할 수 있음). 각 패키지의 코드는 작은 재사용 단위로 사용될 수 있으며 다른 프로젝트에서 참조될 수 있습니다.
각 소스 파일에는 자신이 속한 패키지를 정의하는 패키지 문이 있고, 그 뒤에는 어떤 패키지를 사용해야 하는지 선언하는 비어 있을 수 있는 가져오기 컬렉션이 있고, 함수, 유형, 변수 및 상수의 빈 컬렉션이 뒤따를 수 있습니다. .
code와 errno라는 파일에 속한 패키지가 모두 errno임을 알 수 있습니다. 이는 Go가 Java처럼 클래스를 재사용 단위로 사용하지 않고 패키지를 작은 재사용 단위로 사용한다는 것을 보여줍니다.
요약: Go에서 가장 작은 단위는 패키지이며, 패키지 아래에는 여러 개의 소스 파일이 있을 수 있습니다. 소스 파일은 클래스 클래스와 동일합니다. 각 소스 파일은 package 문을 통해 해당 파일이 속한 패키지를 선언합니다.
Go 언어에서 main이라는 패키지는 특별한 의미를 갖습니다. Go 언어 컴파일러는 이 이름을 가진 패키지를 바이너리 실행 파일로 컴파일하려고 시도합니다. Go로 컴파일된 모든 실행 프로그램에는 main이라는 패키지가 있어야 합니다.
간단히 말하자면, Go 언어 실행 프로그램을 생성하려면 main이라는 패키지가 있어야 하고, 이 패키지 아래에는 단 하나의 main 함수만 있어야 합니다.
컴파일러가 특정 패키지의 이름이 main인 것을 발견하면 즉, main()이라는 함수가 있음을 확실히 알 수 있습니다. 그렇지 않으면 실행 파일이 생성되지 않습니다. main() 함수는 프로그램의 진입점이므로 이 함수가 없으면 프로그램 실행을 시작할 수 없습니다. 프로그램이 컴파일되면 메인 패키지를 선언하는 코드가 위치한 디렉터리의 디렉터리 이름이 바이너리 실행 파일의 파일 이름으로 사용됩니다.
Go 언어를 개발하기 전에 Go 언어의 특성과 사양 중 일부를 이해해야 합니다. 그렇지 않고 자신만이 이해할 수 있는 프로그램을 개발한다면 그것은 단지 자신만의 오락이 될 것입니다. 이 섹션에서는 일부 고전적인 코드와 회사 개발 습관을 기반으로 한 명명 규칙의 예를 제공합니다.
다음은 이 예제 다이어그램을 기반으로 제가 이해한 개발 사양을 설명합니다.
conf: 이 디렉토리 주로 구성 파일을 저장합니다
handler: 주로 일부 프로그램의 항목 파일을 저장하며 Java의 Collter 계층에 해당합니다.
model: 주로 데이터베이스 작업과 관련된 파일을 저장합니다.
pkg: 주로 일부 공통 도구를 저장합니다. 클래스 및 기타 코드
라우터: 주로 라우팅 서비스의 코드를 저장합니다.
service: 주로 비즈니스 코드를 저장합니다.
vendor: 주로 프로젝트 자체의 종속성 패키지를 저장합니다.
conf. yaml: 디렉토리에 배치하거나 conf 폴더
main.go에 배치할 수 있는 프로젝트의 구성 파일: 프로그램의 진입점은 일반적으로 루트 디렉토리에 배치됩니다.
프로그램 초기화 및 실행은 메인 패키지에서 시작됩니다. 기본 패키지가 다른 패키지도 가져오는 경우 컴파일하는 동안 순서대로 가져옵니다. 여러 곳에서 가져온 패키지는 한 번만 가져옵니다. 패키지를 가져올 때 해당 패키지가 다른 패키지도 가져오는 경우 다른 패키지를 먼저 가져온 다음 해당 패키지의 패키지 수준 상수 및 변수가 초기화된 다음 init 함수(있는 경우)가 실행됩니다. .) 등이 있습니다. 가져온 패키지가 모두 로드된 후 메인 패키지의 패키지 수준 상수 및 변수가 초기화되고 메인 패키지의 init 함수가 실행되고(존재하는 경우) 마지막으로 메인 함수가 실행됩니다.
패키지를 가져올 때 종속성은 높은 우선순위에서 낮은 우선순위에 따라 대략 다음과 같이 조회됩니다.
Go 코드 작성 시 패키지 파일을 가져오는 데 import 명령어를 자주 사용하는 경우가 있는데, 보는 방법은
정기 가져오기입니다.
import( "fmt" )
그러면 다음과 같이 코드에서 호출할 수 있습니다
fmt.Println("hello world")
上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块。
点操作
import ( . "fmt" )
这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的fmt.Println(“hello world”) 可以省略的写成Println(“hello world”)。注意:该包内的函数不能与其重名。
别名操作
import( f “fmt” )
别名操作顾名思义可以把包命名成另一个用起来容易记忆的名字,别名操作调用包函数时前缀变成了重命名的前缀,即f.Println(“hello world”),通常为了解决导入多个重名包的问题。
_操作
import ( _ "github.com/go-sql-driver/mysql" )
_操作其实只是引入该包但不使用,通常只为了执行该包中所有的init()函数,最常见的就是上面的mysql包。
위 내용은 Go 언어에는 어떤 패키지가 있어야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!