이유: 프로그램의 모든 코드를 하나의 소스코드 파일에 담는 것은 무리입니다. 관련 코드는 별도의 파일로 관리해야 합니다. 다만, 프로그램 파일이 많아질수록 정리하는 방법/형태가 있어야 합니다. 파일을 관리하므로 Go에서는 "패키지"라는 개념을 도입합니다. 패키지는 프로그램 기능/속성의 "분산형 관리" 및 "통합 사용"을 위한 논리적인 조직 형태입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
패키지 소개
go 언어를 사용하여 개발한 프로그램 파일을 소스 코드 파일이라고 합니다(소스 코드 파일은 .go로 끝나야 함). 당연히 프로그램의 모든 코드를 하나의 소스코드 파일에 넣는 것은 무리이며, 관련 코드를 별도의 파일로 관리해야 합니다. 파일이므로 Go가 도입되었습니다. "패키지"의 개념을 이해합니다.
Package는 Go 언어에서 제공하는 가상 개념입니다. 일관된 패키지 선언이 있는 여러 소스 코드 파일은 논리적으로 함께 구성되며 동일한 패키지에 속합니다.
Go 언어 패키지는 디렉토리 트리의 조직적 형태에 의존합니다. 일반적으로 패키지 이름은 소스 파일이 있는 디렉토리의 이름입니다. 하지만 Go 언어에서는 패키지 이름에 패키지 이름이 디렉터리 이름과 동일하더라도 구조를 더 명확하게 하기 위해 디렉터리 이름이 동일해야 합니다.
패키지는 매우 깊은 디렉터리에 정의될 수 있습니다. 패키지 이름 정의에는 디렉터리 경로가 포함되지 않지만 일반적으로 패키지를 참조할 때 전체 경로가 사용됩니다. 예를 들어 GOPATH/src/a/b/ 아래에 패키지 c를 정의합니다. 패키지 c의 소스 코드에서는 패키지 a/b/c 대신 패키지 c로만 선언하면 됩니다. 그러나 패키지 c를 가져올 때는 import "a/b/c"와 같은 경로를 가져와야 합니다. .
패키지 관용어 사용:
패키지 이름은 일반적으로 소문자이며 짧고 의미 있는 이름을 사용합니다.
패키지 이름은 일반적으로 해당 패키지가 위치한 디렉터리와 동일하거나 다를 수 있습니다. 패키지 이름에는 -와 같은 특수 기호가 포함될 수 없습니다.
패키지는 일반적으로 도메인 이름을 디렉터리 이름으로 사용하여 패키지 이름의 고유성을 보장합니다. 예를 들어 GitHub 프로젝트의 패키지는 일반적으로 GOPATH/src/github.com/userName/projectName 디렉터리에 배치됩니다.
main이라는 패키지는 애플리케이션의 엔트리 패키지입니다. 메인 패키지가 포함되지 않은 소스 코드 파일을 컴파일하면 실행 파일을 얻을 수 없습니다.
한 폴더의 모든 소스 코드 파일은 동일한 패키지에만 속할 수 있습니다. 동일한 패키지에 속하는 소스 코드 파일은 여러 폴더에 배치할 수 없습니다.
(1) 패키지 선언, 패키지 가져오기 경로, 주의할 사항
//一:包的声明 // 1、每个源码文件都必须在文件头处声明自己归属的包。 package 包名 // 包名一般总是用小写字母 // 2、包名任意,包名一致的属于同一个包 // 3、包是编译和归档Go程序的最基本单位,一个包中的多个源码文件是一个不可分割的整体 //二:包的导入路径 强调强调强调!!!!!! 包是一个把多个源码文件归一到一起管理的虚拟单位,一定要记住,它只是一个虚拟的概念而已,而实实在在地讲,多个源码文件是要放置到一个实实在在的文件夹下的,这个实实在在的文件夹所处的路径是包的导入路径。包的导入路径很重要,他是包的"家庭住址",是用来找到包的(用在import语句中,稍后介绍),但它绝不等同于包的概念 //三:注意的问题 1、一个文件夹下只能放置一个包,也就是所一个文件夹下放置的多个源码文件的包声明必须一致,go以此来确保一个路径就唯一定位到唯一的一个包。 2、包虽然与文件夹路径是截然不同的意思,但是为了方便记忆,包通常应该声明为文件夹的名字 例如文件夹路径/a/b/c/mypkg,包名应声明为package mypkg,mypkg就为包名
(2) 패키지 구별 및 배치
패키지는 가상적이고 논리적인 개념입니다. 패키지로 정리된 여러 소스 코드 파일은 실제로 실제이며 특정 폴더에 배치되어야 합니다.
참고: 후속 작성의 단순화를 위해 저자가 패키지로 정리된 여러 소스 코드 파일을 직접 저장합니다. 위치는 다음과 같습니다. 단순히 패키지가 저장된 위치라고 하므로 독자는 이 위치를 알고 있어야 합니다.
메인 패키지에는 프로그램의 진입점이 포함되어 있으며 주로 이를 실행하는 데 사용됩니다. 어떤 경우에도 메인 패키지는 어떤 폴더에나 배치할 수 있습니다.
저자는 기본 패키지 이외의 패키지를 다른 패키지라고 부르는데, 특히 내장 패키지, 사용자 정의 패키지, 다운로드한 타사 패키지를 지칭합니다. 메인 패키지와 다르게 다른 패키지는 주로 import해서 사용합니다. 배치 위치는
// 内置包 内置包固定被放置在`$GOROOT/src/`下,与任何模式无关 // 自定义包 在未启用modules模式的情况下,自定义包需要放置在GOPATH指定的任意目录下的src中 // 下载的第三方包 在未启用modules模式的情况下,使用go工具链命令下载的第三方包总是默认被存放到GOPATH的第一个目录的src下 // 强调一下 在早期的Go环境中,自定义的包与下载的第三方包都是放到了$GOPATH/src下,因为早期Go采用的是和GOPATH模式,而且即便是在GO1.14.2版本中,在我们还未学习如何使用任何新模式前,默认使用的仍是GOPATH模式
ps입니다.
1. 내장 패키지는 표준 패키지에 대한 작성자의 별명입니다. GOPATH 작업 공간에 저장되어 있는 한 패키지는 공식적으로 작업 공간 패키지라고 합니다
(3) 패키지 사용
// 1、一个源码文件中声明的函数、类型、变量和常量等标识符/名字对同一包中的所有其他源码文件都可见,不需要加任何前缀即可引用,因为代码包只是一种组织管理源码文件的形式,同一个包下的多个源码文件本就属于一个整体,事实上我们完全可以将一个包当成一个”大文件“去看,毫无疑问这个”大文件“中声明的标识符/名字不能重名 // 2、包名很关键 名为main的包可简称为”main包“,是程序的入口,go程序运行时会查找main包下的main函数,main函数既没有参数声明也没有结果声明,见下图 名不为main的包可称之为”其他包“,是程序的功能/属性集合,此类包用来被其他包导入使用,为何此时包名仍然很关键呢?因为我们导入时用的是导入路径(指的是包所在的路径,该路径不是绝对路径,稍后介绍),但是使用的则可能会使用"包名.xxx"
요약하자면 패키지는 "분산 관리" 및 "통합 사용"의 논리적 의미입니다. 프로그램 기능/속성
의 조직 형태【관련 추천:
Go 비디오 튜토리얼, 프로그래밍 교육】
위 내용은 Go 언어가 코드를 패키지로 구성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

텍스트 데이터를 처리하는 도구를 제공하고 기본 문자열에서 고급 정규 표현식에 이르기까지 텍스트 데이터를 처리 할 수있는 도구를 제공하기 때문에 이동 중 "문자열"패키지에주의해야합니다. 1) "Strings"패키지는 성능 문제를 피하기 위해 문자열을 스플 라이스하는 데 사용되는 결합 기능과 같은 효율적인 스트링 작업을 제공합니다. 2) 포함 함수와 같은 고급 함수가 포함되어있어 문자열에 특정 문자 세트가 포함되어 있는지 확인합니다. 3) 교체 함수는 문자열의 하위 문자열을 대체하는 데 사용되며 교체 순서 및 사례 감도에주의를 기울여야합니다. 4) 분할 함수는 분리기에 따라 문자열을 분할 할 수 있으며 종종 정규 발현 처리에 사용됩니다. 5) 사용 할 때 성능을 고려해야합니다.

"인코딩/바이너리"패키지 인테이블 링 베이너리 데이터, 1) ItsupportsBothlittle-endianandbig-endianByteorders, CruialCross-SystemCompatibility .2) ThePackagealLowworkingwithcus

바이트 패키지를 GO에서 마스터하면 코드의 효율성과 우아함을 향상시키는 데 도움이 될 수 있습니다. 1) 바이트 패키지는 이진 데이터를 구문 분석, 네트워크 프로토콜 및 메모리 관리에 중요합니다. 2) BYTES.BUFFER를 사용하여 점차적으로 바이트 슬라이스를 작성하십시오. 3) 바이트 패키지는 바이트 슬라이스 검색, 교체 및 세분화 기능을 제공합니다. 4) BYTES.READER 유형은 특히 I/O 작업에서 바이트 슬라이스의 데이터를 읽는 데 적합합니다. 5) Bytes 패키지는 GO의 가비지 수집기와 협력하여 빅 데이터 처리의 효율성을 향상시킵니다.

문자열을 조작 할 때 "문자열"패키지를 사용할 수 있습니다. 1) Strings.trimSpace를 사용하여 문자열의 양쪽 끝에서 공백 문자를 제거하십시오. 2) strings.split을 사용하여 지정된 구분 기호에 따라 문자열을 슬라이스로 분할하십시오. 3) 문자열 슬라이스를 문자열을 통해 하나의 문자열로 병합합니다. 4) 문자열에 포함하여 문자열에 특정 하위 문자열이 포함되어 있는지 확인하십시오. 5) STRINGS.REPLACEALL을 사용하여 글로벌 교체를 수행하십시오. 사용할 때 성능과 잠재적 인 함정에주의하십시오.

thebytespackageingoishlytectivefificbyteslicemanipulation, ontomingfortionsforctionsforctions, splitting, andbuffering

thealternativeStogo'sbytespackageinincludestringspackage, bufiopackage, and customstructs.1) thestringspackagecanbeusedforbytemanipulationbytestostringsandback.2) thebufiopackageisidealforhandlinglargestreamsofficationsificationsificationsly

"바이트"패키지 인테이션 전신 formanipulatingByteslices, CruialForbinaryData, NetworkProtocols 및 Filei/O.itoffersFunctions likeIndexForsearching, BufferforHandlingLargedAtasets, ReaderForsimulatingstreamReading 및 조종 전망

GO'SSTRINGSPACKAGEISCRUCIALFORFOFFICIENTSTRINGMENIPULATION, OffingerToolSlikestrings.split (), strings.join (), strings.Replaceall () 및 strings.contains () .split () DivideStringIntoSubstrings; 2) strings.join () stringsintring;


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

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

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

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

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구