hELLO.

    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() 함수가 정의되어 있으며 실행가능한 패키지임을 의미한다. 이 패키지는 다른 코드에 의해 포함되는 용도로 존재하는 것이 아니라 프로그램을 실행하기 위해 존재한다. 이렇듯, 우리가 가장 처음 작성했던 코드마..

    Go: 함수 (익명함수, 스코프, 고루틴, 지연호출)

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

    Go: 변수와 상수 (var, const)

    Go 는 정적 타입 언어다 이번 포스트에서는 Go 에서 변수와 상수에 대해 알아보자. 변수를 코드에서 사용하고 활용하는 법에 대해 알아보기전에 먼저 알아야할 사항이 있다면, Go 는 정적 타입 언어라는 점이다. 정적 타입은 컴파일 타임에 타입이 결정되며 런타임 중에 동적으로 타입이 변경될 수 없음을 말한다. 인터프리터를 사용하는 동적 언어인 자바스크립트, 파이썬과는 전혀 다른 성격을 띄고 있다. 정적 타입을 가진 언어는 대체로 빠른 속도를 가진다. 런타임 중에 타입을 추론하거나 그로 인해 다시 한 번 최적화를 진행해야 하는 상황이 발생하지 않기 때문이다. 이러한 정적 타입 언어에는 대표적으로 C 가 있다. Go 는 구글이 개발했지만, 마이크로소프트 또한 타입을 무척이나 좋아하기 때문에 C/C++/C#/T..