본문 바로가기

전체 글

(23)
[GO 마스터하기] 04-합성 타입 사용법 구조체 type aStructure struct { person string height int weight int } 구조체 리터럴은 다음과 같이 정의할 수 있다. 두번째 방법은 모든 필드를 초기화 하지 않아도 된다. p1 := aStructure{"fmt", 12, -2} p1 := aStructure{weight:12, height: -2} package main import "fmt" func main() { type XYZ struct { X int Y int Z int } var s1 XYZ fmt.Println(s1.Y, s1.Z) p1 := XYZ{23, 12, -2} p2 := XYZ{Z: 12, Y: 13} fmt.Println(p1) fmt.Println(p2) pSlice := [4..
[GO 마스터하기] 03-Go언어의 기본 데이터 타입 Go 언어의 루프 Go 언어에서는 for 루프를 사용해 순환 반복 구문을 프로그래밍할 수 있다. for 루프 for i := 0; i < 100; i++ { } 이 루프문을 보면, i는 0부터 99까지의 값을 받는다. 여기서 i는 지역 변수이자 임시 변수로서, for 루프가 종료된 후에는 일정한 시점에 가비지 컬렉션되어 사라진다. 하지만 i를 for 루프 밖에 정의하였다면 for 뤂프가 종료된 후에도 값을 그대로 유지한다. 위의 코드에서는 루프가 종료 후 i는 100이된다. while 루프 Go 언어는 while 키워드를 직접 제공하지 않으나 for 루프를 이용해 while 루프를 작성할 수 있다. for { } do while문도 표현이 가능하다 for ok := true; ok; ok = 표현식 { ..
[GO 마스터하기] 02-Go언어 내부 살펴보기 Go 컴파일러 Go 컴파일러는 go 커맨드로 실행한다. 이 커맨드는 단순히 실행 파일을 생성하는데 그치지 않고 상당히 많은 일을 한다 Go 언어로 작성된 소스 파일을 컴파일하려면 go tool compile 커맨드를 실행한다. 그러면 object file이 생성되며, 확장자는 .o다. 오브젝트 파일은 일종의 바이너리 파일로서 오브젝트 코드를 담고 있다. 이는 재배치 할 수 있는 포맷으로 된 기게어로서, 대부분의 경우 이 상태로 직접 실행하지 않는다. 이렇게 재배치 가능한 포맷으로 생성함으로써 얻을 수 있는 가장 큰 장점은, 링크 단계에서 차지하는 메모리 공간을 최소화할 수 있다는 점이다. go tool compile을 실행할 때 -pack 플래그를 지정하면 오브젝트 파일이 아닌 아카이브 파일이 생성된다 ..