안녕하세요. 언제나 휴일, 언휴예요.
이번 게시글에서는 사칙 연산을 살펴볼 거예요. 사칙 연산은 여러분이 직관적으로 생각하는 것과 큰 차이는 없어요.
새 프로젝트를 생성하여 여러분이 생각하는 것과 차이가 없는 부분을 표현해 보기로 해요.
// 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) var f1 float32 = 0.2 var f2 float32 = 0.3 fmt.Println(f1, "+", f2, "=", f1+f2) fmt.Println(f1, "-", f2, "=", f1-f2) fmt.Println(f1, "*", f2, "=", f1*f2) var c1 complex64 = 2 + 3i var c2 complex64 = 1 + 2i fmt.Println(c1, "+", c2, "=", c1+c2) fmt.Println(c1, "-", c2, "=", c1-c2) fmt.Println(c1, "*", c2, "=", c1*c2) var s1 string = "hello," var s2 string = " ehclub.co.kr" fmt.Println(s1, "+", s2, "=", s1+s2) }
두 개의 정수 사이의 덧셈, 뺄셈, 곱셈 연산, 두 개의 실수 사이의 덧셈, 뺄셈, 곱셈 연산, 두 개의 복소수 사이의 덧셈, 뺄셈, 곱셈 연산은 여러분이 생각하는 것과 차이가 없어요. 그리고 문자열 사이의 덧셈도 직관적으로 생각할 수 있는 결과인 두 개의 문자열을 합한 문자열이예요.
그런데 Go 언어는 강력한 형식 언어로 서로 다른 형식 사이에 사칙 연산은 제공하지 않아요. 다음 그림은 정수 형식과 실수 형식 사이에 더하기 연산을 수행하는 코드를 컴파일할 때 나오는 에러 발생 화면이예요. 여러분께서도 직접 코드를 작성하여 빌드해 보세요. 에러가 발생하는 것을 확인할 수 있을 거예요.
또한 정수 사이의 나누기 연산은 연산 결과가 정수입니다. 나누기 연산에서 나머지는 버리기 때문에 내림 법칙을 사용하다는 것에 주의하세요. 새 프로젝트를 생성하여 확인해 보아요.
// Example 나누기 연산 package main import "fmt" func main() { var i1 int = 8 var i2 int = 3 fmt.Println(i1, "/", i2, "=", i1/i2) var f1 float32 = 3.2 var f2 float32 = 2.1 fmt.Println(f1, "/", f2, "=", f1/f2) }
먼저 정수 형식 사이에 나누기 연산을 테스트 해 보세요.
- 정수/정수
var i1 int = 8 var i2 int = 3 fmt.Println(i1, "/", i2, "=", i1/i2)
8을 3으로 나누면 몫이 2이고 나머지는 2죠. Go 언어에서 나누기 연산에서는 나머지는 버립니다. 따라서 8/3의 결과는 2예요.
8 / 3 = 2
그런데 실수 형식 사이에서 나누기 연산은 직관적으로 생각하는 나누기와 같습니다.
- 실수/실수
var f1 float32 = 3.2 var f2 float32 = 2.1 fmt.Println(f1, "/", f2, "=", f1/f2)
위 코드의 실행 결과는 다음과 같아요.
3.2 / 2.1 = 1.5238097
3.2 / 2.1 = 1.5238097
이 외에도 여러분께서 어떠한 결과가 나올까 의심스러운 것이 있으면 직접 코드를 작성해서 확인해 보세요. 프로그래밍에서 적극적인 액션들이 보다 내실을 단단하게 만들어 줄 거예요.