반응형

구글 Go 언어 26

[구글 Go 하자] 23. 다양한 대입 연산자, 좌항에 상수는 올 수 없어요.

23. 다양한 대입 연산자, 좌항에 상수는 올 수 없어요. 안녕하세요. 언제나 휴일, 언휴예요. 이번 게시글에서는 Go 언어의 대입 연산을 살펴보아요. Go 언어의 대입 연산에는 = 와 +=, -= ,... 등이 있어요. 대입 연산의 좌항에는 상수가 올 수 없어요. 좌항이 관리하는 메모리에 우항의 값을 설정하는 연산이기 때문이예요. 그리고 대입 연산자 좌항에 오는 표현을 l-value라고 불러요. 그리고 +=, -=, ... 등의 연산은 좌항의 값과 우항의 값을 +, -, ... 등의 연산을 먼저 수행한 후에 연산 결과를 좌항이 관리하는 메모리에 설정합니다. 새 프로젝트를 생성하여 논리 연산 표현을 사용해 보아요.[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가 // Example 대입..

[구글 Go 하자] 22. 쉬프트 연산은 비트 단위로 자리를 이동합니다.

22. 쉬프트 연산은 비트 단위로 자리를 이동합니다. 안녕하세요. 언제나 휴일, 언휴예요. 이번 게시글에서는 Go 언어의 쉬프트 연산을 살펴보아요. Go 언어의 쉬프트 연산에는 좌측 쉬프트()를 제공합니다. 쉬프트 연산은 좌항에 정수 형식이 올 수 있고 우항에는 부호없는 정수 형식이 올 수 있어요. 좌측 쉬프트 연산은 좌항의 값을 우항의 값만큼 비트 자리 이동을 합니다. 예를 들어 3을 왼쪽으로 4자리 이동하면 연산 결과는 48이예요. 십진수 3은 이진수로 11이며 4자리 왼쪽으로 이동하면 이진수 110000, 즉 48이예요. 좌측으로 1자리 이동하면 곱하기 2를 수행한 연산 결과가 같아요. 따라서 좌측으로 n자리 이동하면 2의 n승을 곱한 결과와 같습니다. 우측 쉬프트 연산은 좌측 쉬프트 연산과 역으로..

[구글 Go 하자] 21. 비트 단위로 연산하는 비트 연산자

21. 비트 단위로 연산하는 비트 연산자 안녕하세요. 언제나 휴일, 언휴예요. 이번 게시글에서는 Go 언어의 비트 연산을 살펴보아요. Go 언어의 비트 연산에는 비트 AND(&), 비트 OR(|), 비트 XOR(^), 비트 clear(&^)를 제공합니다. 비트 연산은 피연산자로 정수 형식이 올 수 있으며 비트 단위로 연산을 수행해요. 예를 들어 6과 5를 비트 AND 연산을 수행하면 비트 단위로 연산하여 연산 결과는 4가 나와요. 6은 이진수로 ...110이고 5는 이진수로 ...101이죠. 따라서 같은 자리의 비트끼리 AND 연산을 수행하면 이진수로 ...100, 즉 4입니다. 만약 6과 5를 비트 OR 연산을 수행하면 연산 결과는 7이예요. 이진수 110과 이진수 101을 같은 자리의 비트끼리 OR ..

[구글 Go 하자] 19. Go언어에서는 비교 연산자를 사용하는 곳이 많아요.

19. Go언어에서는 비교 연산자를 사용하는 곳이 많아요. 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 값의 크기를 비교하는 비교 연산자를 알아보기로 해요. 비교 연산자는 같음(==), 다름(!=), 작음(=) 연산이 있어요. C언어와 C++언어에서는 비교 연산을 문자열에 사용할 수 없고 배열에서는 개발자가 생각하는 결과와 다르게 메모리 주소를 비교했어요. 하지만 Go 언어에서는 문자열이나 배열에서 비교할 수 있고 비교 결과도 우리가 생각하는 것과 차이가 없어요. 이번 게시글에서는 배열에서 비교하는 연산은 다루지 않을 거예요. 새 프로젝트를 생성하여 비교 연산자를 사용하는 표현을 사용해 봅시다.[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가 // Example 비교 연산자 개요pac..

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

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

[구글 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..

반응형