예제로 살펴보는 Go : Recursion

Go는 재귀함수(Recursive functions)를 지원한다. 아래는 고전적인 factorial 예제코드다.fact 함수는 fact(0)이 호출 될 때까지 자기 자신을 계속 호출한다.아래 코드는 slice의 원소를 뒤집는 일을 한다. 1. 슬라이스 크기의 1/2 만큼을 루프를 돌면서, 앞의 원소와 뒤의 원소를 서로 뒤바꾸는 식으로 작동한다. 1. 재귀...

예제로 살펴보는 Go : Variadic Functions

Variadic Function은 변수의 개수가 가변적인 함수를 의미한다. 예를들어 fmt.Println가 대표적인 Variadic 함수다.예제 코드에 있는 sum 함수를 보자. 이 sum 함수는 여러 개의 매개변수를 받아서 더하고 그 결과를 출력하는 일을 한다. 여러개의 변수를 받는 방법은 간단하다. 데이터 타입 앞에 "..."을 붙여주기만 하면 된다. ...

예제로 살펴보는 Go : Multiple Return Values

Go 언어는 한 번에 두 개 이상의 값을 반환하는 걸 허용한다. 이 기능은 특히 처리 결과와 에러를 함께 리턴하기 위한 용도로 널리 사용한다.vals 함수는 두 개의 int 값을 반환한다. 개발자는 multiple assignment를 이용해서 여러 개의 값을 할당할 수 있다. 만약 반환 값을 할당하고 싶지 않다면 언더바(_)를 이용하면 된다. Go 언어로...

예제로 살펴보는 Go : Functions

함수(Functions)는 Go의 핵심 요소다. 몇 개의 장에 걸쳐서 함수를 만들고 사용하는 법을 살펴보도록 하겠다. plus 함수는 두 개의 int형 매개변수를 받고, int형 값을 반환한다. 함수의 형태가 C/C++ 과는 약간 다르다. C/C++의 경우 반환 값이 함수 이름 앞에 나오는데, Go는 매개변수 뒤에 나온다. ruby 같은 언어들은 retur...

예제로 살펴보는 Go : Range

range는 배열, map, 슬라이스와 같은 다양한 데이터 스트럭처로부터 데이터를 순환하면서 가져오기 위해서 사용한다.6~11 슬라이스 nums의 값을 range로 가져와서 더하는 코드다. 배열 역시 같은 방식으로 값을 가져올 수 있다. range를 이용하면 두 개의 값을 반환한다. 첫번째 값은 key이고 두번째 값은 value다. 따라서 num 에는 슬라...

예제로 살펴보는 Go : Map

Map은 Go에 내장된 associative date type이다. 다른 언어에서는 hash(ruby)나 dicts(python)라고 부르기도 한다. 내장 함수인 make를 이용해서 비어있는 map을 만들 수 있다. make(map=value의 문법으로 값을 저장 할 수 있다. Println을 이용해서 map을 출력하면, map에 있는 모든 key/valu...

예제로 살펴보는 Go : Slices

Slices는 go의 중요한 데이터타입이다. 배열과 상당히 유사하지만 더욱 강력한 기능을 제공 하기 때문에, 배열 대신 슬라이스를 주로 사용하게 된다.배열과 다르게 슬라이스는 크기의 변경이 가능하다.0 보다 큰 슬라이스를 만들기 위해서는 make를 사용해야 한다. 예제코드에서는 스트링을 저장 할 수 있는 크기가 3인 슬라이스를 만들었다. 슬라이스의 값은 z...

예제로 살펴보는 Go : Value

Go는 strings, integers, floats, booleans 등 다양한 값(value)들을 지원한다. 예제를 통해서 기본적인 값들을 살펴보도록 하자.+ 연산자를 이용해서 스트링을 더 할 수 있다. Integer과 floats 값들의 연산을 확인 할 수 있다. Boolean 연산의 경우 예상한 대로 결과가 나오는 걸 확인 할 수 있다.----다음 ...

예제로 살펴보는 Go : Arrays

배열(Array)는 하나 이상의 연속된 자료들의 집단으로 구성된 자료구조다.10 번째 줄에서 크기가 5인 int형 배열 a를 만들었다. 이 배열은 5개의 int 값을 저장할 수 있다. 11 번째 줄에서 a를 출력했다. 배열을 선언하고 초기화하지 않을 경우에는 각 자료형의 초기 값으로 자동으로 초기화 된다. int, float는 0, string는 "", b...

예제로 살펴보는 Go : Switch

Switch 문은 여러 개의 조건을 분기하기 위해서 사용한다. case 문을 이용해서 여러 개의 조건을 처리하는 것을 확인 할 수 있다. 만약 모든 case 조건을 만족하지 않는 값들에 대한 기본처리를 원하고 싶다면 default문을 이용하면 된다. 19-24 코드에서 default 문을 사용하고 있다. 오늘이 Saturdaty 혹은 Sunday가 아닌 경...