프로그래밍 언어/Golang

    Go: 맵 (Map)

    Map 맵은 자바스크립트의 객체 리터럴이나 파이썬의 사전과 비슷하게 키와 값을 가질 수 있는 자료구조다. 맵을 사용하면 배열과 슬라이스를 사용했을때 거쳐야 할 일부 번거로운 연산과정을 거칠 필요 없이 키와 값이 매핑되어 있기 때문에 접근이나 값을 수정하는 것이 수월하다. Go 언어의 맵은 데이터가 들어간 순서대로 정렬되지 않는다는 특징이 있어서 정렬된 데이터를 원한다면 별도의 정렬 함수를 사용하여 정렬해야 한다. 맵은 아래와 같이 사용할 수 있으며 슬라이스와 마찬가지로 make() 를 통해 생성해야 한다. 이 맵은 키가 스트링타입이며 값 또한 스트링 타입이다. 문법이 다소 특이하기 때문에 적응하기 어려울 수도 있다. 현재 Go 언어에서는 제네릭이 없다. package main func main() { v..

    Go: 배열 & 슬라이스 (Array, Slice)

    배열 배열은 메모리 공간에서 연속된 위치에 있는 값 목록이다. 배열은 자료구조의 일종이며 Go 에서는 같은 타입에 대해 여러 개의 값을 담을 수 있다. 일반적인 형태의 변수를 사용한다면 변수를 여러 개 사용해야 할 것도 배열이 있으면 그 일을 보다 수월하게 처리할 수 있다. 아래의 배열은 5개의 숫자를 받을 수 있는데, Go 의 배열은 크기가 정해져있는 정적 배열이다. 크기가 변할 수 있는 동적은 것은 슬라이스라는 개념에서 나올 것이다. package main func main() { numbers := [5]int{0, 1, 2, 3, 4} } 배열을 여러 줄로 사용하기 위해서는 맨 마지막 요소에 콤마를 반드시 찍어줄 필요가 있다. package main func main() { runes := [5]..

    Go: 반복문 (for, range)

    for 반복문을 사용할 때는 for 키워드를 사용한다. Go 언어에는 while 문이 없기 때문에 for 문에서 모든 반복을 해결한다. 아래에서 몇 가지 케이스를 살펴보자. 반복문은 초기화식, 조건식, 증감식이 사용된 형태로 사용된다. 대부분에서 언어에서 공통으로 사용되는 형태이다. 반복자가 10 미만인 경우에 한해 반복하며 블록 내부에 있는 코드를 실행하고, 이후 반복자의 값을 하나씩 더한다. package main import "fmt" func main() { sum := 0 for i := 0; i < 10; i++ { sum += i } // -> 45 fmt.Println(sum) } while 처럼 사용하기 for 문을 타언어의 while 처럼 사용할 수 있다. package main imp..

    Go: 조건문 (if, switch)

    조건문은 다른 언어에서도 기본적인 사항이지만, 더욱 간결하게 제공된다. 조건문은 기본적으로 if ~ elseif ~ else, switch ~ case 가 존재한다. switch ~ case 문은 없는 언어도 있기야 한데, 효과는 비슷하더라도 용도가 상당히 다르기 때문에 추가한게 아닐까 싶다. if ~ else if ~else Go 언어의 조건문의 경우 파이썬처럼 중괄호가 없다. 그래서인지 파이썬이 아닌 일부 타언어를 하다가 Go 언어를 하는 경우 실수를 할 수도 있다. 그 외에 사용법은 타언어와 같다. 조건에 맞으면 if, 안맞으면 else if 의 조건을 검사, 그 마저도 안 맞으면 else 블록의 코드를 실행한다. package main import "fmt" func main() { // -> H..

    Go: 패키지 (package, import)

    Go 의 패키지는 자바의 패키지와 유사하다. 모든 Go 코드는 특정 패키지에 포함되어야 한다. 특수 패키지인 main 을 제외하고는 모두 일반적인 패키지라도 봐도 무방하다. Hello, Go 다시 한 번, 또 보고 또 본다. 기본적인 코드에 많은 내용이 들어있다. package main import "fmt" func main() { fmt.Println("Hello, Go!") } 위의 코드는 main 패키지에 소속되어 있음을 볼 수 있다. main 은 특수 패키지이며 프로그램의 메인 코드인 main() 함수가 정의되어 있으며 실행가능한 패키지임을 의미한다. 이 패키지는 다른 코드에 의해 포함되는 용도로 존재하는 것이 아니라 프로그램을 실행하기 위해 존재한다. 이렇듯, 우리가 가장 처음 작성했던 코드마..