Languages/Go

[Go] 패키지 만들기 ( 모듈 만들기 )

MOONCO 2022. 3. 2. 23:11

패키지 방식이란?

go의 코드를 여러개의 파일로 나누어 관리하는 것

( 하나의 파일 : 패키지 )

 

go에서 패키지 만들기

// main.go 파일이 있는 폴더에, 새로운 폴더 만들고 새로운 파일 만들기
// ./accounts/accounts.go

// 이 파일이 패키지 임을 go에게 알려줌
package accounts

// 패키지 내부에서 struct 만들기
// go에서 맨앞글자(a)가 소문자이면, private 취급되어 다른 파일에서 사용할 수 없게 숨겨진다. 
type account struct{
  owner string
  balance int
}

// 다른 파일에서 사용할 수 있는 public함수 만들기 (맨앞글자 대문자)
func NewAccount(owner string) *account{
  account := account{owner:owner, balance:0}
  return &account
}

 

만든 패키지 사용하기

// 패키지 가져오기
import (
  "main.go경로/accounts"
)

// accounts패키지 안에서, NewAccount 함수 사용하기
func main(){
  account := accounts.NewAccount("jinho")
  fmt.Println(account)
}

/*
  accounts 패키지의 account struct는, private 요소 이므로 외부에서 사용이 불가능하다.
  - accounts.account{owner:"jinho", balance:0} 형식으로 사용불가능
*/

 

반응형