[Go 언어] 16. 직관적인 사칙 연산과 비교해 보세요.

안녕하세요. 언제나 휴일, 언휴예요.

 

이번 게시글에서는 사칙 연산을 살펴볼 거예요. 사칙 연산은 여러분이 직관적으로 생각하는 것과 큰 차이는 없어요.

새 프로젝트를 생성하여 여러분이 생각하는 것과 차이가 없는 부분을 표현해 보기로 해요.

[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가
[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가

 

두 개의 정수 사이의 덧셈, 뺄셈, 곱셈 연산, 두 개의 실수 사이의 덧셈, 뺄셈, 곱셈 연산, 두 개의 복소수 사이의 덧셈, 뺄셈, 곱셈 연산은 여러분이 생각하는 것과 차이가 없어요. 그리고 문자열 사이의 덧셈도 직관적으로 생각할 수 있는 결과인 두 개의 문자열을 합한 문자열이예요.

[그림 2] 사칙 연산 개요 실행 결과
[그림 2] 사칙 연산 개요 실행 결과
 그런데 Go 언어는 강력한 형식 언어로 서로 다른 형식 사이에 사칙 연산은 제공하지 않아요. 다음 그림은 정수 형식과 실수 형식 사이에 더하기 연산을 수행하는 코드를 컴파일할 때 나오는 에러 발생 화면이예요. 여러분께서도 직접 코드를 작성하여 빌드해 보세요. 에러가 발생하는 것을 확인할 수 있을 거예요.

[그림 3] 다른 형식 사이에 사칙 연산에서의 에러 발생 화면
[그림 3] 다른 형식 사이에 사칙 연산에서의 에러 발생 화면
 또한 정수 사이의 나누기 연산은 연산 결과가 정수입니다. 나누기 연산에서 나머지는 버리기 때문에 내림 법칙을 사용하다는 것에 주의하세요. 새 프로젝트를 생성하여 확인해 보아요.

[그림 4] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가
[그림 4] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가

 

 

먼저 정수 형식 사이에 나누기 연산을 테스트 해 보세요.

  • 정수/정수

 

8을 3으로 나누면 몫이 2이고 나머지는 2죠. Go 언어에서 나누기 연산에서는 나머지는 버립니다. 따라서 8/3의 결과는 2예요.

그런데 실수 형식 사이에서 나누기 연산은 직관적으로 생각하는 나누기와 같습니다.

  • 실수/실수

위 코드의 실행 결과는 다음과 같아요.

3.2 / 2.1 = 1.5238097

[그림 5] 나누기 연산 예제 실행 화면
[그림 5] 나누기 연산 예제 실행 화면
 이 외에도 여러분께서 어떠한 결과가 나올까 의심스러운 것이 있으면 직접 코드를 작성해서 확인해 보세요. 프로그래밍에서 적극적인 액션들이 보다 내실을 단단하게 만들어 줄 거예요.