본문 바로가기
IT공부/IOS개발

스위프트 공부 _ 연산자 우선순위와 결합방향

by 놀고싶은 노자 2021. 7. 12.

지난번에 연산자에는 무엇이 있는지 알아보았는데 

많은 연산자들이 어떤 순서로 적용이 되는지 알아보려고 한다. 

사칙연산도 앞에서 부터 이루어지는 것이 아니라 곱셈과 나눗셈이 먼저 이루어지 듯 스위프트의 연산자들에도 우선 순위가 있다. 

그리고 또한, 연산자가 연산하는 결합방향도 지정되어 있기에 같은 우선순위의 연산자가 있다면, 

어느 방향부터 그룹을 지을 것인지를 나타내고 있다. 

 

우선 스위프트 표준 라이브러리의 연산자를 참고해보자

https://swift.org

 

Swift.org

Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.

swift.org

https://developer.apple.com/documentation/swift/swift_standard_library/operator_declarations

 

Apple Developer Documentation

 

developer.apple.com

연산자의 우선순위와 결합방향에 대해 알수 없었는데, 

연산자 뒤에 콜론을 붙이고 이어서 써준 연산자 우선순위 그룹을 지정해준 것이기 때문이다. 

스위프트 표준 라이브러리에는 다양한 우선순위 그룹이 존재한다. 

 

higherThan, lowerThan, associativity등으로 우선순위 및 결합방향등을 지정한 것을 알 수 있다. 

연산자 우선순위가 높을 수록 같은 라인의 연산자 중 먼저 처리하게 된다. 

 

* 스위프트의 연산자 우선순위와 결합방향 규칙은 Object-C보다 훨씬 간단하고, 예측 가능하다. 하지만, C계열 언어와 스위프트 연산자 우선수위나 결합방향이 완전히 같지는 않다.