Basic Operators(기본 연산자)

apwierk·2022년 5월 18일
0

SwiftGuideLine

목록 보기
2/2

연산자는 값을 확인, 변경 또는 결합하는 데 사용하는 특수 기호입니다.

Swift에서 사용하는 연산자

  • 대입 연산자 (=)
  • 산술 연산자 (+, -, *, /, % ...)
  • 범위 연산자 (... , ..<)
  • 고급 연산자

Terminology

  • 단항 연산자

단항 연산자는 단일 대상(예: -a)에서 작동합니다.

  • 이진 연산자

이진 연산자는 두 개의 대상(예: 2 + 3)에서 작동하며 두 대상 사이에 나타나기 때문에 중위 연산자입니다.

  • 삼항 연산자

삼항 연산자는 세 가지 대상에서 작동합니다. C와 마찬가지로 Swift는 삼항 연산자인 삼항 조건부 연산자(a ? b : c)만 있습니다. → a가 참일 경우 b, 거짓일 경우c

할당 연산자(Assignment Operator)

할당 연산자는 값을 초기화하거나 업데이트합니다.

let b = 10
var a = 5
a = b
// a is now equal to 10

let (x, y) = (1, 2)
// x is equal to 1, and y is equal to 2

산술 연산자 (Arithmetic Operators)

Swift는 숫자 유형에 대하여 4가지 표준 산술 연산자를 지원합니다.

1 + 2       // equals 3
5 - 3       // equals 2
2 * 3       // equals 6
10.0 / 2.5  // equals 4.0

더하기 연산자는 String연결에도 지원됩니다.

"hello, " + "world"  // equals "hello, world"

나머지 연산자

배수를 계산하고 남은 값을 반환합니다.

9 % 4    // equals 1

-9 % 4   // equals -1

복합 할당 연산자

var a = 1
a += 2
// a is now equal to 3

Nil-Coalescing 연산자

Nil-Coalescing 연산자는 옵션에 값이 포합되어 있으면 래핑을 풀고 없다면 기본값을 반환합니다. 표현식은 선택적 타입이며 내부에 저장된 유형은 일치해야 됩니다.

a ?? babanilaba
코드의 내부 구현
a != nil ? a! : b

범위 연산자

값 범위를 표현하기 위한 연산자입니다.

폐쇠 범위 연산자

(a...b) 으로 a값과 b값을 포함합니다.

for index in 1...5 {
    print("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25

반개방 범위 연산자

(a..>b) 으로 a값은 포함하지만 b값은 포함하지 않습니다.

let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
    print("Person \(i + 1) is called \(names[i])")
}
// Person 1 is called Anna
// Person 2 is called Alex
// Person 3 is called Brian
// Person 4 is called Jack

단측 범위

[3...] 은 3에서부터 배열의 끝까지 라는 뜻입니다.

반대로 [...3] 은 별의 처음부터 3(index)까지라는 뜻입니다.

논리 연산자

논리 연산자는 Boolean 논리 값을 수정하거나 결합합니다.

  • NOT (!a) → a가 아닌
  • AND (a && b) → a 이고 b인
  • OR (a || b) → a 이거나 b인

이 논리 연산자를 합쳐서 이용 가능합니다.

if enteredDoorCode && passedRetinaScan || hasDoorKey || knowsOverridePassword {
    print("Welcome!")
} else {
    print("ACCESS DENIED")
}
// Prints "Welcome!"

명시적 괄호

복잡한 표현식의 의도를 쉽게 파악하기 위해 괄호를 포함하는 것이 유용하다.

if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword {
    print("Welcome!")
} else {
    print("ACCESS DENIED")
}
// Prints "Welcome!"
profile
iOS 꿈나무 개발자

0개의 댓글