저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
연산자 알아보기
이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07
연산자 우선순위
연산자 우선순위는 수학시간에 배운 내용과 비슷합니다. 예를들면 2 + 3 * 2에서 3 * 2를 먼저 계산하고 2 + 6을 계산합니다. 이 부분도 필요할 때 언제든 찾아보기 바랍니다.
Go 언어에서는 기본적으로 여러 연산자들이 있을 때 왼쪽에서 오른쪽으로 계산합니다. 단, 연산자들은 다음과 같이 우선순위가 있으며 숫자가 높을 수록 먼저 계산합니다.
우선순위 | 연산자 |
---|---|
5 | * / % << >> & &^ |
4 | + - | ^| |
3 | == != < <= > >= |
2 | && |
1 | || |
표 13-2 연산자 우선순위
다음과 같이 8 + 10 / 2를 계산해봅니다.
a := 8 + 10 / 2
fmt.Println(a) // 13
연산자 우선순위에 의해 앞에 있는 덧셈(+)보다 뒤에 있는 나눗셈(/)이 먼저 실행되서 5가 나온 뒤에 8과 더해서 13이 됩니다.
8과 10을 먼저 더하려면 다음과 같이 ( )
(괄호)를 사용합니다.
a := (8 + 10) / 2
fmt.Println(a) // 9
8과 10을 먼저 더해서 18이 나온 뒤에 2를 나누어 9가 됩니다. 즉 괄호를 사용하면 계산 순서를 바꿀 수 있습니다.
gofmt와 연산자
gofmt
도구로 소스 파일을 정렬했을 때 괄호가 없으면 연산자 우선순위가 높은 쪽의 공백을 삭제하여 서로 붙여줍니다.
곱셈(*)과 덧셈(+)이 괄호 없이 쭉 나열되어 있다면
a := 3 * 5 + 2 * 7
gofmt 도구로 정렬했을 때 다음과 같이 우선순위가 높은 곱셈 연산은 서로 붙여줍니다.
a := 3*5 + 2*7
하지만 우선순위가 같은 연산자만 있다면 gofmt는 서로 붙이지 않고 모두 공백으로 띄워줍니다.
a := 3 - 5 + 2 - 7
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.