Golang 패키지 학습

4222 단어 go
모든 Golang 코드는 packages 에 작성됩니다. 기본 패키지는 프로그램의 시작점 역할을 합니다. Go에는 미리 빌드된 여러 패키지가 있습니다. 우리가 사용하고 있는 fmt 패키지가 가장 잘 알려져 있습니다.

“Go packages in the main mechanism for programming in the large that go provides and they make possible to divvy up a large project into smaller pieces.”

Robert Griesemer



유사한 클래스 및 인터페이스 그룹은 패키지의 네임스페이스 아래에 그룹화됩니다. 패키지는 다양한 컴퓨터 디렉토리와 유사한 것으로 개념화할 수 있습니다. 사진은 한 폴더에, 스크립트나 프로그램은 다른 폴더에, HTML 페이지는 세 번째 폴더에 보관할 수 있습니다.

패키지 설치




go get <package-url-github>
// example
go get github.com/satori/go.uuid


작업 디렉터리 역할을 하는 GOPATH 환경에는 우리가 설치한 패키지가 포함되어 있습니다. cd $GOPATH/pkg 명령을 사용하여 작업 디렉터리 내부의 pkg 폴더를 입력하면 패키지를 볼 수 있습니다.

사용자 지정 패키지 만들기



먼저 사용자 지정 패키지라는 폴더를 만듭니다.

> mkdir custom_package
> cd custom_package


사용자 지정 패키지를 구성하려면 먼저 원하는 패키지 이름으로 폴더를 설정해야 합니다. 우리가 패키지 녀석을 생성할 때의 경우를 생각해 보십시오. 사용자 지정 패키지 폴더 안에 사람 폴더를 만들어 보겠습니다.

> mkdir person
> cd person


지금 파일 사람을 만드십시오. 이 폴더를 입력하십시오.

package person
func Description(name string) string {
  return "The person name is: " + name
}
func secretName(name string) string {
  return "Do not share"
}


사용 및 가져오기를 활성화하려면 패키지를 지금 설치해야 합니다. 이제 다음과 같이 설정해 보겠습니다.

> go install


커스텀 패키지 폴더로 돌아가서 이제 메인을 만들어 봅시다. 파일 이동

package main
import(
  "custom_package/person"
  "fmt"
)
func main(){ 
  p := person.Description("Milap")
  fmt.Println(p)
}
// => The person name is: Milap


이제 개발한 패키지 사람을 가져올 수 있으므로 Description 함수를 활용할 수 있습니다. 패키지에 추가한 secretName 함수는 사용되지 않습니다. 대문자 없이 시작하는 Go의 메서드 이름은 비공개로 간주됩니다.

패키지 설명서



Go는 패키지 문서를 기본적으로 지원합니다. 문서를 작성하려면 아래 명령을 입력하십시오.

godoc person Description


이것은 패키지 담당자의 설명 기능에 대한 문서를 제공합니다. 문서를 보려면 다음 명령을 사용하여 웹 서버를 실행하십시오.

godoc -http=":8080"


http://localhost:8080/pkg/에서 방금 생성한 패키지에 대한 설명서로 이동합니다.

Go의 일부 내장 패키지



fmt



이 프로그램은 형식화된 I/O에 대한 루틴을 구현합니다. 이 패키지는 이전에 stdout으로 인쇄하는 데 사용되었습니다.

JSON



Go JSON 패키지는 또 다른 유용한 패키지입니다. 이는 JSON 인코딩 및 디코딩을 용이하게 합니다. 일부 JSON을 인코딩 및 디코딩하는 인스턴스를 살펴보겠습니다.

인코딩




package main

import (
  "fmt"
  "encoding/json"
)

func main(){
  mapA := map[string]int{"apple": 5, "lettuce": 7}
  mapB, _ := json.Marshal(mapA)
  fmt.Println(string(mapB))
}


풀다




package main

import (
  "fmt"
  "encoding/json"
)

type response struct {
  PageNumber int `json:"page"`
  Fruits []string `json:"fruits"`
}

func main(){
  str := `{"page": 1, "fruits": ["apple", "peach"]}`
  res := response{}
  json.Unmarshal([]byte(str), &res)
  fmt.Println(res.PageNumber)
}
//=> 1


JSON 바이트를 디코딩할 때 unmarshal에 제공되는 첫 번째 매개변수는 바이트 자체이고 두 번째 인수는 JSON이 매핑되어야 하는 응답 유형 구조체의 주소입니다. 구조체의 PageNumber 속성을 페이지 키에 매핑하는 JSON:"page"를 염두에 두십시오.

요약



Go는 클래스와 인터페이스를 나타내는 패키지로 작성됩니다. 패키지는 컴퓨터 디렉토리와 유사한 것으로 개념화할 수 있습니다. 작업 디렉터리 역할을 하는 GOPATH 환경에는 우리가 설치한 패키지가 포함되어 있습니다. $GOPATH/pkg 안에 pkg 폴더를 입력하면 해당 폴더 내의 패키지를 볼 수 있습니다.

A Brief Introduction to Functions, Method, Structs, and Interfaces in Golang

좋은 웹페이지 즐겨찾기