GoLang 사용자 패키지 사용하기

// 패키지 설치 방법

// GOPATH 설명 --> http://golang.org/doc/code.html#GOPATH
// 현재 디렉토리를 GOPATH 로 설정한다면
// set GOPATH=%cd% (윈도우 경우)
// export GOPATH=./ (리눅스 경우)

// 현재 디렉토리 안에 src/my_math 디렉토리 생성
// mkdir src
// cd src
// mkdir my_math
// cd my_math

// 패키지 빌드 및 설치
// go build my_math.go
// go install my_math

// 설치가 성공했다으면 (윈도우64 기준으로)
// 현재디렉토리/pkg/windows_amd64/my_math.a 가 생성된다.

// author : ysoftman
// encoding : utf-8
// title : my_math 패키지
package my_math

import "fmt"

// 소문자로 시작하는 함수는 외부 패키지에서 접근할 수 없다.
func add(x int, y int) (result int) {
fmt.Println("add() called.")
return x + y
}

// 대문자로 시작하는 함수는 외부 패키지에서 접근할 수 있다.
func Add(x int, y int) (result int) {
fmt.Println("Add() called.")
return x + y
}

//////////////////////////////////////////////////////////////////////////////////


// author : ysoftman
// encoding : utf-8
// title : 패키지 테스트
package main

import "fmt"
import "my_math"

func main() {
// 같은 패키지 않의 함수 호출 가능
innerFunc1(1)
// 다른 패키지의 소문자로 시작하는 함수 호출 불가능
// 컴파일 에러발생 --> cannot refer to unexported name my_math.add
//result := my_math.add(1,2)
// 다른 패키지의 대문자로 시작하는 함수 호출 가능
fmt.Println("call my_math.Add(1,2)")
result := my_math.Add(1,2)
fmt.Println("result = ", result)
}

func innerFunc1(x int) {
fmt.Println("innerFunc1(" , x, ")")
}

comments:

댓글 쓰기