2012년 4월 22일 일요일

GO 언어의 Workspace

Visual Studio 에서 사용하던 project, workspace 개념.
즉, 프로그램을 여러개의 파일로 분리하여 작성하는 개념.
여러개의 파일로부터, 하나의 실행파일을 빌드하는 개념.

GO 언어에서는 이것이 어떻게 구현되어 있을까.



핵심은 환경변수 GOPATH 를 설정하는것에 있다.

사용할 workspace 경로를 환경변수 GOPATH 에 설정해주고,
그 경로에 다음과 같은 디렉토리를 만든다.


         bin
         pkg
         src


























GO 언어에서는 메인함수의 하위 모듈들을 "package" 라는 이름으로 부른다.

메인함수가 들어있는 파일과 package 파일들을 src 폴더에 작성한다.

여기서는 4개의 파일을 작성해본다.

src/
            hello24.go
src/ example / newmath /
            sqrt.go
            even.go
src/ odd/
            odd.go
























<hello24.go>

package main

import  (
"fmt"
"example/newmath"
"odd"
)

func main() {
fmt.Printf( " Sqrt(2) = %v\n", newmath.Sqrt(2))
fmt.Printf( " Even(2) = %v\n", newmath.Even(2))
fmt.Printf( " Odd(2) = %v\n", odd.Odd(2))
}



<sqrt.go>

package newmath

// Sqrt returns an approximation to the square root of x.
func Sqrt(x float64) float64 {
// This is a terrible implementation.
// Real code should import "math" and use math.Sqrt.
z := 0.0
for i := 0; i < 1000; i++ {
z -= (z*z - x) / ( 2 * x)
}
return z
}



<even.go>

package newmath

func Even( i int) bool {
return i % 2 == 0
}



<odd.go>

package odd

func Odd( i int) bool {
return i % 2 == 1
}



다음 그림은 workspace 를 빌드하고, 실행시켜본 결과이다.
package 에 있는 함수가 호출되고 있음을 확인할 수 있다.





















음...

Makefile 이나 configuration file 을 사용하지 않는다는 점.

의존성이 소스코드형태( import )로 서술된다는 점.






댓글 없음:

댓글 쓰기