>  기사  >  백엔드 개발  >  GO 학습 : - 패키지

GO 학습 : - 패키지

Susan Sarandon
Susan Sarandon원래의
2024-11-20 20:04:16476검색

안녕하세요! 나는 현재 Go Lang을 배우고 있으며 내 Notion에 대한 몇 가지 기본 메모를 작성하고 있으며 여기에 게시할 수도 있습니다. 잘 생각해서 쓴 것도 아니고 잘 쓴 것도 아니고 그냥 참고용으로 가끔 메모하는 거에요.

저는 막시밀리안 슈바르츠뮐러의 Udemy 강좌를 수강하고 있습니다.


메모

  • 코드를 여러 파일로 분할한 다음 해당 파일을 여러 패키지로 분할할 수 있습니다
  • 그러면 해당 패키지를 외부 프로젝트에서 사용할 수 있습니다
  • 컴포넌트를 만드는 것과 코드를 더 나은 방식으로 처리하기 위해 코드를 여러 파일로 분할하는 것과 유사한 것 같습니다. 그렇게 하면 자체 패키지도 만들 수 있습니다

패키지 생성

  • 새 .go 파일을 만들면 됩니다
  • 모든 Go 파일은 패키지의 일부여야 합니다
  • 다른 파일과 동일한 패키지에 있는 파일을 선언할 때마다 동일한 패키지에 있는 모든 파일의 기능을 직접 사용할 수 있습니다
  • 예를 들어 함수가 포함된 파일을 만들고 다른 파일에서 해당 함수를 호출하려면 두 파일을 모두 동일한 패키지에 넣은 다음 함수를 직접 호출할 수 있습니다
  • 가져오기는 패키지를 통해 직접 전달되지 않습니다
  • 그래서 새로운 go 파일의 기능에 사용되는 다른 패키지를 가져와야 합니다
  • 패키지에 여러 파일을 생성하면 해당 패키지를 다른 프로젝트에 사용할 수 있습니다. 이렇게 하면 계속해서 사용하는 코드가 포함된 패키지를 가질 수 있으며 해당 코드는 패키지에 들어가고 해당 패키지는 같은 목적으로 다른 프로젝트에 사용

맞춤형 패키지

  • 사용자 정의 패키지를 만들려면 해당 패키지에 대한 새 폴더를 만들어야 합니다
  • 폴더 이름은 패키지 이름과 동일해야 합니다
  • 파일 이름은 다를 수 있으며 패키지와 동일할 필요는 없습니다.
package fileops

import (
    "errors"
    "fmt"
    "os"
    "strconv"
)

func writeFloatToFile(value float64, fileName string) {
    valueText := fmt.Sprint(value)
    os.WriteFile(fileName, []byte(valueText), 0644)
}

Learning GO : - Packages

  • 여기에는 파일이 포함된 폴더 이름 fileops가 있는 fileops라는 패키지가 있습니다
  • 해당 파일의 이름은 무엇이든 지정할 수 있습니다. 파일 상단에 내 파일이 속한 패키지 이름을 선언했습니다

패키지 사용

  • 이 사용자 정의 패키지를 사용하려면 이를 가져와야 하며 프로세스는 다른 내장 패키지와 동일합니다
  • 그러나 이 경우 go.mod 파일과 동일한 경로를 지정해야 합니다.
package main

import (
    "fmt"
    "example.com/bank/fileops"
)
  • 여기서 example.com/bank는 프로젝트 생성 시 생성된 go.mod 파일에서 가져온 것입니다

Learning GO : - Packages

내보내기 식별 - 변수, 함수 등…

  • 다른 패키지의 일부 기능을 사용하고 해당 패키지를 만든 경우 해당 기능을 내보내야 합니다
  • 패키지에서 무언가를 내보내려면 이름이 대문자로 시작하도록 정의해야 합니다.
package fileops

import (
    "errors"
    "fmt"
    "os"
    "strconv"
)

func writeFloatToFile(value float64, fileName string) {
    valueText := fmt.Sprint(value)
    os.WriteFile(fileName, []byte(valueText), 0644)
}
  • 이것은 JavaScript의 내보내기 키워드와 동일하게 작동합니다. 여기서는 내보내기 키워드로 함수 또는 변수를 정의하고 해당 변수 또는 함수를 내보내야 하며 다른 파일에서 사용할 수 있음을 명시적으로 정의합니다
  • 따라서 함수나 변수의 이름을 통해 무언가를 내보낼지 여부를 정의할 수 있습니다.
package main

import (
    "fmt"
    "example.com/bank/fileops"
)
  • Go에는 사용할 수 있는 일부 패키지를 얻을 수 있는 자체 패키지 디렉토리가 있습니다. 때로는 처음부터 만들고 싶지 않은 일부 기능이 있으며 GO에 사용 가능한 "외부 패키지"를 사용할 수 있습니다. .
  • NPM 패키지와 비슷한 개념입니다

외부 패키지 사용

  • 시스템 전체에 패키지를 추가하는 Go 명령이 있습니다.
func WriteFloatToFile(value float64, fileName string) {}
func GetFLoatFromFile(fileName string) (float64, error) {}
  • 이 명령을 실행하면 go.mod 파일이 변경되고 패키지가 여기에 나열되며 모든 타사 종속성이 여기에 나열됩니다.
package main

import (
    "fmt"

    "example.com/bank/fileops"
)
fileops.WriteFloatToFile(accountBalance, accountBalanceFile)  
  • 패키지를 사용하려면 사용하려는 go 파일에서 가져오기 경로를 정의할 수 있습니다. 가져오기 경로는 go.mod 파일에 저장되어 있으므로 github 링크와 동일합니다.
go get github.com/Pallinder/go-randomdata
  • 이후에는 사용과정은 동일하며 랜덤데이터를 사용합니다. 모든 방법을 얻고 공식 사이트의 패키지 페이지를 참조하고 사용할 수 있는 모든 방법을 확인합니다.
module example.com/bank

go 1.22.1

require github.com/Pallinder/go-randomdata v1.2.0 // indirect

위 내용은 GO 학습 : - 패키지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.