기본 문법 공부(연산자(Basic Operator) - 사용자정의 연산자(Custom Operators))
이 포스트는 야곰님의 Swift 프로그래밍 2판을 보고 스스로 공부한 내용을 정리한 포스트 입니다.
참고 자료
사용자정의 연산자 (Custom Operators)
- 
    
스위프트에서는 사용자(프로그래머)의 입맛에 맞게 연산자 역활을 부여할 수 있다. - 
    
또, 기존에 존재하지 않던 연산자 기호를 만들어 추가할 수도 있다.- 그러나 
'할당 연산자(=)'와 '삼항 연산자(?:)'는 사용자정의 역활을 부여할 수 없다. 
 - 그러나 
 - 
    
우선 기존 연산자의 역활을 변경하거나 새로운 역활을 추가하기 위해서는기존의 연산자가 '전위 연산자인지', '중위 연산자인지', '후위 연산자'인지 알아야 한다.- 
        
전위 연산자는 연산자가 피연산자 앞에 위치하는 연산자를 뜻한다.- 
            
대표적인 예로 부울 부정 논리연산(NOT) 연산자(!)가 있다 - 
            
Ex) !A
 
 - 
            
 - 
        
중위 연산자는 피연산자 사이에 위치하는 연산자를 뜻한다.- 
            
많은 수의 연산자가 여기에 속한다 - 
            
Ex) A + B
 
 - 
            
 - 
        
후위 연산자는 피연산자 뒤에 위치하는 연산자를 뜻한다.- 
            
대표적인 예로 옵셔널 강체 추출 연산자 등이 있다. - 
            
Ex) O!
 
 - 
            
 
 - 
        
 - 
    
전위 연산자를 뜻하는 키워드는 'prefix' 이다. - 
    
중위 연산자를 뜻하는 키워드는 'infix' 이다. - 
    
후위 연산자를 뜻하는 키워드는 'postfix' 이다. - 
    
'operator'라는 키워드는 연산자임을 뜻한다. - 
    
'associativity'는 연산자 결합방향을 뜻한다. - 
    
'precedence'라는 키워드는 우선순위를 뜻한다. - 
    
사용자정의 연산자는 아스키(ASCII) 문자 (/, =, -, +, !, *, %, <, >, &, |, ^, ?, ~ )를 결합해서 사용한다. - 
    
마침표(.)를 사용자정의 연산자에 사용할 수 있다.- 
        
다만 마침표를 사용자정의 연산자에 사용할 때 주의점이 있다. 연산자를 표현하는 문자 중 맨 처음의 문자가 마침표일 때만 연산자에 포함된 마침표가 연산자로 인식된다.- 예를 들어 ‘.+.’ 처럼 사용할 수 있다.
 
 - 
        
만약 마침표로 시작되지 않는 연산자에 마침표가 들어가게 되면 이를 인식할 수 없다.- 예를 들어 ‘+.+’의 경우에는 ‘+’ 연산자와 ‘.+’ 연산자를 사용한 것으로 인식된다.
 
 
 - 
        
 - 
    
물음표(?)도 사용자정의 연산자에 포함시킬 수 있지만 물음표 자체만으로는 사용자정의 연산자를 정의할 수 없다. - 
    
더불어
사용자정의 연산자에 느낌표(!)도 같은 조건으로 포함시킬 수 있다. - 
    
단,
전위 연산자는 물음표나 느낌표로 시작하는 사용자정의 연산자를 정의할 수 없다. - 
    
토큰으로 사용되는 =, ->, //, /*, */, .과 전위 연산자 <, &, ?, 중위 연산자 ?, 후위 연산자 >, !, ? 등은 이미 스위프트에서 예약한 상태이기 때문에 재정의할 수 없으며 사용자정의 연산자로 사용될 수도 없다.