본문 바로가기

Engineering WIKI/GoLang5

Go - Interface ''' 구조체(struct)가 필드들의 집합체라면, interface는 메서드들의 집합체이다. interface는 타입(type)이 구현해야 하는 메서드 원형(prototype)들을 정의한다. 하나의 사용자 정의 타입이 interface를 구현하기 위해서는 단순히 그 인터페이스가 갖는 모든 메서드들을 구현하면 된다. 인터페이스는 struct와 마찬가지로 type 문을 사용하여 정의한다. ''' type Shape interface { area() float64 perimeter() float64 } //Rect 정의 type Rect struct { width, height float64 } //Circle 정의 type Circle struct { radius float64 } //Rect 타입에 대한.. 2021. 1. 19.
Go - Map // Map은 키(Key)에 대응하는 값(Value)을 신속히 찾는 해시테이블(Hash table)을 구현한 자료구조 // "map[Key타입]Value타입" 과 같이 선언 var idMap map[int]string /* 이때 선언된 변수 idMap은 (map은 reference 타입이므로) nil 값을 갖으며, 이를 Nil Map이라 부른다. Nil map에는 어떤 데이타를 쓸 수 없는데, map을 초기화하기 위해 make()함수를 사용할 수 있다 (map 리터럴을 사용할 수도 있는 이는 아래 참조). */ idMap = make(map[int]string) /* map은 make() 함수를 써서 초기화할 수도 있지만, 리터럴(literal)을 사용해 초기화할 수도 있다. 리터럴 초기화는 "map[K.. 2021. 1. 19.
Go - Slice // Go 배열은 고정된 크기를 가지지만 Go Slice 개념을 통해 유동적으로 크기 조절 가능 // var v []T -> 배열과 달리 크기 지정 x package main import "fmt" func main() { var a []int //슬라이스 변수 선언 a = []int{1, 2, 3} //슬라이스에 리터럴값 지정 a[1] = 10 fmt.Println(a) // [1, 10, 3]출력 } // Go에서 Slice를 생성하는 또 다른 방법으로 Go의 내장함수 make() 함수를 이용 /* make() 함수로 슬라이스를 생성하면, 개발자가 슬라이스의 길이(Length)와 용량(Capacity)을 임의로 지정할 수 있는 장점이 있다. make() 함수의 첫번째 파라미터에 생성할 슬라이스 타입을.. 2021. 1. 19.
Go - Array //배열의 선언은 "var 변수명 [배열크기] 데이타타입" package main func main() { var a [3]int //정수형 3개 요소를 갖는 배열 a 선언 a[0] = 1 a[1] = 2 a[2] = 3 println(a[1]) // 2 출력 } /* 배열을 정의할 때, 초기값을 설정할 수도 있다. 초기값은 "[배열크기] 데이타타입" 뒤에 { } 괄호를 두고 초기값을 순서대로 적으면 된다 /*/ var a1 = [3]int{1, 2, 3} var a3 = [...]int{1, 2, 3} //배열크기 자동으로 // 다차원 배열 func main() { var a = [2][3]int{ {1, 2, 3}, {4, 5, 6}, //끝에 콤마 추가 } println(a[1][2]) } 2021. 1. 19.
[GO] GO Run, Build, Install * GO RUN-) go run은 현재 작성한 go 파일을 테스트하는 용도로 쓰인다package mainimport “fmt”func main() { fmt.println(“Hello World!”)} go run .\helloworld.go 위 명령어를 입력하면 "Hello World"와 같은 결과가 출력 * GO BUILD -) go build는 go 파일을 실행명령 파일로 만들어주는 명령어-) 실행파일 > .exe 확장자로 끝난다. go build .\helloworld.go build 명령어는 run을 실행한 후 테스트를 마친 go 코드를 실행명령 파일로 빌드해주는 역할 * GO INSTALL-) 직계 상위 디렉토리 코드 전체를 대상으로 한 명령파일을 생성하는 명령어-) section1 위치에서 .. 2020. 5. 30.