본문 바로가기

스피드 문법정리

4. Operators

Operators

  설명  예시
Operator (연산자) 연산을 수행하기 위해 사용되는 문자 +, -, 등
Operand (피연산자) 계산에 사용되는 값  
Unary Operator (단항연산자) 피연산자가 1개인 경우 +a
Binary Operator (이항연산자) 피연산자가 2개인 경우 a + b
Ternary Operator (삼항연산자) 피연산자가 3개인 경우 a ? b : c
Prefix Operator (전치연산자) 연산자가 피연산자 앞에 있는 경우 +a
Postfix Operator (후치연산자) 연산자가 피연산자 뒤에 있는 경우 a+
Infix Operator 피연산자 사이에 있는 경우 a + b

Operators 종류

Operators 종류 예시
Unary Plus Operator +a
Unary MinusOperator -a
Multiplication Operator a * b
Division Operator a / b
Remainder Operator a % b

Overflow Operators

Overflow Operators 예시
Overflow Addition Operator a &+ b
Overflow Subtraction Operator a &- b
Overflow Multiplication Operator a &* b

Comparison Operators

Comparison Operators 예시
Equal to Operator a == b
Not equal to Operator a != b
Greater than Operator a > b
Greater than or equal to Operator a >= b
Less than Operator a < b
Less than or equal to Operator a <= b

Logical Operators

Logical Operators 설명 예시
Logical Not Operators 참은 거짓으로 거짓은 참으로 변경 !a
Logical And Operators 모든 피연산자가 참일 경우만 참 a && b
Logical Or Operators 1개의 피연산자가 참이여도 참 a || b 

 

true || ture true true || ture true
true || false false true || false true
false || ture false false || ture true
false || false false false || false false

Thernary Operators

조건을 기준으로 2개의 값 중 하나를 선택할 때 사용

condition? expr1 : expr2
let hour = 12
hour < 12 ? "am" : "pm"

1, condition 에는 Boolean 표현식

2. 2, 3 번째 피연산자의 자료형이 일치되어야 함

3. 조건이 2개인 경우에만 사용하고 그 이상인 경우 조건문 사용

Short - circuit Evalation (단락 평가)

논리식을 평가할 때 결과를 얻기 위한 최소한의 코드를 실행 이미 결과를 얻었다면 나머지는 실행하지 않음

var a = 1
var b = 1

func updateLeft () -> Bool {
	a += 1
    return true
}

func updateRight () -> Bool {
	b += 1
    return true
}
if updateLeft() || updateRight() {

}

a // 2
b // 1

let resultA = updateLeft()
let resultB = updateRight()

if resultA && resultB {

}

a // 2
b // 2

예제를 보면 if 조건절에서 Logical Or Operators는 둘 중 하나만 True여도 True기 때문에 updateLeft()가 True로 평가되기 때문에 updateRight()를 실행하지 않고 if 문을 종료시킴  

Side Effect

코드의 실행으로 값 또는 상태가 변경하는 것을 말함

논리식에서 side effect를 발생시킬 수 있는 코드가 포함되어있다면 논리적인 오류가 발생할 확률이 높아짐으로 조심해서 사용해야 함

Range Operators

Range Operators 예시
Closed Range Operaotor a...b
a...
...a
Half - Opern Range Operator a ..< b
..<a