반응형

언어 자료구조 알고리즘/구글 Go 37

[구글 Go 하자] 17. 변수의 값을 특정 범위에서 순환하게 하기

17. 변수의 값을 특정 범위에서 순환하게 하기 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 나머지 연산자를 알아보기로 해요. Go 언어에서 나머지 연산자는 두 개의 정수 형식을 피연산자로 둘 수 있어요. 정수/정수의 연산 결과가 나머지를 버린 몫이라고 앞에서 얘기했었죠. 정수/정수에서의 나머지를 구할 때 나머지 연산자 %를 사용해요. 그런데 나머지 연산자는 산술 연산을 하기 위한 목적보다도 특정 범위의 정수에서 순환하게 할 때 더 많이 사용합니다. 10개의 요소를 맨 앞에서부터 순차적으로 접근하고 맨 마지막 요소를 접근한 후에 다시 맨 앞에서부터 접근하고자 할 때처럼 변수의 값을 특정 범위의 정수에서 순환하게 할 때가 제법 많이 나와요. 새 프로젝트를 생성하여 정수 형식의 변수를 특정 범위에서 순환하..

[구글 Go 하자] 16. 직관적인 사칙 연산과 비교해 보세요.

16. 직관적인 사칙 연산과 비교해 보세요. 안녕하세요. 언제나 휴일, 언휴예요. 이번 게시글에서는 사칙 연산을 살펴볼 거예요. 사칙 연산은 여러분이 직관적으로 생각하는 것과 큰 차이는 없어요. 새 프로젝트를 생성하여 여러분이 생각하는 것과 차이가 없는 부분을 표현해 보기로 해요.[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가 // Example 사칙 연산자 개요package main import "fmt" func main() { var i1 int = 2 var i2 int = 3 fmt.Println(i1, "+", i2, "=", i1+i2) fmt.Println(i1, "-", i2, "=", i1-i2) fmt.Println(i1, "*", i2, "=", i1*i2) va..

[구글 Go 하자] 15. 부호 연산자도 연산자

15. 부호 연산자도 연산자 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 연산자 중에서 자주 사용하지 않지만 분명히 존재하는 부호 연산자를 가볍게 언급하고 넘어갈게요. 부호 연산자는 단항 연산자로 + 와 - 가 있어요. + 부호 연산자는 연산 결과가 우측 피연산자와 같아서 실제 사용하는 코드를 만나기는 힘들어요. 어떻게 보면 실효성이 없다고 볼 수도 있는 연산자예요. - 부호 연산자는 연산 결과가 우측 피연산자에 곱하기 -1을 한 결과예요. 자주 사용하는 연산자는 아니지만 분명히 존재하는 연산자입니다. 새 프로젝트를 생성하여 간단하게 사용해 보고 넘어가기로 해요. [그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가 // Example 부호 연산자package main import "fm..

[구글 Go 하자] 14. Go 언어 연산자 개요

14. Go 언어 연산자 개요 안녕하세요. 언제나 휴일, 언휴예요. 프로그래밍은 컴퓨터로 하여금 특정 작업을 수행하게 하는 일련의 작업이예요. 이를 위해 작업을 수행하는 과정에서 데이터를 관리하기 위한 문법과 컴퓨터가 수행해야 할 작업을 위한 문법을 요구하죠. 앞에서 다루었던 변수와 형식은 데이터를 관리하기 위한 문법이죠. 이번에는 컴퓨터가 수행해야 할 문법 중에 가장 기초적인 연산자 문법을 다룰 거예요. Go언어의 연산자에는 산술 계산에 필요한 부호 연산과 사칙연산, 나머지 연산, 증감 연산을 비롯하여 크기를 비교하는 연산, 논리 연산과 비트 연산과 쉬프트 연산, 특정 인덱스의 요소를 의미하는 인덱스 연산, 메모리 주소를 구하는 레퍼런스(참조) 연산 및 메모리 주소에 있는 값을 가져오거나 설정하는 역참..

[구글 Go 하자] 13. iota를 사용하여 규칙적인 상수 열거하기

13. iota를 사용하여 규칙적인 상수 열거하기 안녕하세요. 언제나 휴일, 언휴예요. 이전 게시글에서는 const 키워드를 이용하여 상수를 표현하는 방법을 살펴보았어요. 이번 게시글에서는 const 키워드와 괄호, iota를 이용하여 상수를 열거하는 방법을 살펴보아요. 프로그래밍에서 특정 변수가 갖을 수 있는 값의 종류를 한정하여 사용하거나 여러 종류의 값을 여러 개의 상수명에 정의하여 사용하면 효과적일 때가 많이 있어요. 이전 게시글에서 얘기한 것처럼 가독성이 높아지고 변경이 쉬워집니다. 새 프로젝트를 만들어 하나 하나 표현해 보기로 해요.[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가 // Example itoa 사용package main import "fmt" func main..

[구글 Go 하자] 12. const 키워드로 상수 정의

12. const 키워드로 상수 정의 안녕하세요. 언제나 휴일, 언휴예요. 이전 게시글에서는 기본적인 변수 형식을 알아보았어요. 이번 게시글에서는 상수를 알아보기로 해요. 프로그래밍에서 특정 의미를 갖는 고정 값을 상수로 표현하면 가독성이 높아집니다. 50보다는 max_student로 표현하는 것이 가독성이 높다는 것이죠. 또한 해당 값을 변경하고자 할 때 상수명에 상수 값을 정의하는 곳에서만 바꾸면 나머지 소스 코드에 수정없이 변경할 수 있어 편의성도 높일 수가 있어요. 먼저 새 프로젝트를 생성하여 상수 표현을 사용해 보기로 해요.[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가 // Example 상수 표현package mainimport "fmt"func main() { const..

[구글 Go 하자] 11. 참과 거짓은 bool, 문자열은 string

11. 참과 거짓은 bool, 문자열은 string 안녕하세요. 언제나 휴일, 언휴예요. 앞에서 수를 표현하는 다양한 정수, 실수, 복소수 형식을 살펴보았어요. 이번에는 참과 거짓을 표현할 때 사용하는 bool 형식과 문자열을 표현할 때 사용하는 string을 간략히 살펴보아요. Go 언어에서는 이와 같은 형식 외에도 배열, 슬라이스, 구조체, 포인터, 함수, 인터페이스, 맵, 채널 타입 등을 제공합니다. C언어나 다른 프로그래밍 언어를 다룬 적이 계신 분들은 이러한 부분을 바로 다루는 것이 더 맞겠지만 언제나 휴일에서는 처음 언어를 접하는 이들도 볼 수 있게 연산자와 제어문 등의 문법들을 소개한 후에 다른 형식들을 다룰 거예요. 문자열도 필요에 의해 여기에서는 간단히 소개만 하고 구체적인 사용 방법은 ..

[구글 Go 하자] 10. math 패키지에서 제한값을 제공해요.

10. math 패키지에서 제한값을 제공해요. 안녕하세요. 언제나 휴일, 언휴예요. 구글 Go언어에서는 math 패키지에서 자료형의 표현 범위의 제한값을 제공하고 있어요. 프로젝트를 생성하여 제한값을 사용해 보아요. [그림 1] LiteIDE에서 새로운 프로젝트 생성 및 소스 추가 // Example math 패키지에서 제공하는 제한값package main import "fmt"import "math" func main() { fmt.Println(math.MinInt8) //int8의 최솟값 fmt.Println(math.MaxInt8) //int8의 최댓값 fmt.Println(math.MinInt16) //int16의 최솟값 fmt.Println(math.MaxInt16) //int16의 최댓값 f..

[구글 Go 하자] 9. Go 언어에서는 복소수를 표현하는 형식을 제공해요.

9. Go 언어에서는 복소수를 표현하는 형식을 제공해요. 안녕하세요. 언제나 휴일, 언휴예요. 통계나 물리 엔진 등을 개발할 때 실수 뿐만 아니라 복소수를 계산할 때가 있어요. Go언어에서는 복소수를 표현할 수 있는 형식으로 complex64와 complex128을 제공하고 있어요. complex64 형식은 float32 실수부와 허수부로 구성하며 complex128 형식은 float64 실수부와 허수부로 구성하고 있어요. 프로젝트를 새로 생성하여 복소수를 표현해 보아요.[그림 1] LiteIDE에 프로젝트 생성 및 소스 추가 // Example 복소수 표현package main import "fmt" func main() { var c1 complex64 = 1 + 2i //실수부와 허수부 var c2..

[구글 Go 하자] 8. IEEE 754 규약을 따르는 실수, 오차 범위에 주의

8. IEEE 754 규약을 따르는 실수, 오차 범위에 주의 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 Go 언어에서 실수를 표현할 때 사용하는 float32(32비트)와 float64(64비트)를 소개할게요. 0.1과 0.2 사이에는 몇 개의 실수가 있을까요? 여러분이 아시는 것처럼 무한 개의 실수가 존재하죠. 컴퓨터에서는 메모리에 데이터를 표현하여 모든 실수를 유한한 메모리에 표현할 수는 없어요. 실제로 컴퓨터에 실수 표현은 오차 범위를 갖고 있어요. Go언어에서는 IEEE 754 규약에 따라 실수를 표현하고 있어요. IEEE 754 규약에서는 실수를 부호부, 지수부, 가수부로 나누어 일정 범위의 오차 범위를 갖는 실수를 표현하는 것을 약속하고 있어요.위키 피디아 IEEE 754 Go 언어에서는 ..

반응형