go

    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)

    Go 언어의 반복문과 조건문은 다른 언어에서도 기본적인 사항이지만, 더욱 간결하게 제공된다. 반복문은 for 하나 뿐이며 조건문은 if ~ elseif ~ else, switch ~ case 가 존재한다. switch ~ case 문은 없는 언어도 있기야 한데, 효과는 비슷하더라도 용도가 상당히 다르기 때문에 추가한게 아닐까 싶다. 반복문의 경우 while 문을 for 문에 포함하여 함께 쓸 수 있도록 해놓아서 while 문을 별도로 만들지는 않은 것 같다. if ~ else if ~else Go 언어의 조건문의 경우 파이썬처럼 중괄호가 없다. 그래서인지 파이썬이 아닌 일부 타언어를 하다가 Go 언어를 하는 경우 실수를 할 수도 있다. 그 외에 사용법은 타언어와 같다. 조건에 맞으면 if, 안맞으면 el..

    Go: 패키지(package, import)

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

    Go: 함수 (func)

    Go 가 다른 언어가 다른 점은 클래스가 없다는 점이다. 메서드라고 표현하는 것마저도 표현 방식이 다를 뿐 일반 함수와 아주 유사하게 표시된다. 메서드에 대해서는 추후 알아보기로 하고, 지금부터는 Go 의 일반적인 함수에 대해 알아본다. 함수는 로직이나 알고리즘을 묶은 코드의 집합이다. 함수형 프로그래밍에서는 기본 단위로 사용되기도 한다. 함수를 사용하는 가장 큰 의미는 중복을 제거하는 일이다. 이것이 가장 먼저이며 그 다음으로는 함수 내부는 블랙박스로 하여 구현에 상관없이 추상화를 하여 함수 단위로 프로그램을 구성할 수 있도록 만드는 것이다. 함수의 입력과 출력만 알고 있으면 구현과 관계 없이 프로그램을 구성할 수 있다. 여기서 함수는 프로그램을 구성하는 기본 단위로써 동작한다. Hello, Go 다시..