복합 지정 연산자 (Compound Assignment Operators)
C언어처럼 스위프트는 복합 지정 연산자를 복합 지정(=)과 다른 연산자를 결합하는 것을 제공합니다. 한 예로 덧셈 지정 연산자(+=)입니다.
var a = 1
a += 2
// a is now equal to 3
a += 2 표현은 a = a + 2라는 표현을 짧게 줄여 표현한 것입니다. 효과적으로 덧셈과 지정을 2가지 일을 동시에 수행하는 하나의 연산자로 결합되어졌습니다.
NOTE
복합 지정 연산자는 값을 반환하지 않습니다. 예를 들면 let b = a += 2는 쓸 수 없습니다.
비교 연산자 (Comparison Operators)
스위프는는 표준 C언어의 비교 연산자 모두를 지원합니다.
- (a == b) // a와 b는 동일
- (a != b) // a와 b는 같지 않음
- (a > b) // a는 b보다 크다
- (a < b) // a는 b보다 작다
- (a >= b) // a는 b보다 크거나 같음
- (a <= b) // a는 b보다 작거나 같음
NOTE
스위프트는 2개의 identity 연산자(=== and!==)를 제공하는데 두 객체 참조가 모두 같은 경우를 참조하는지 테스트를 하기 위해 사용됩니다.
각각의 비교연산자는 구문이 true 인지 아닌지를 나타내기 위해 Bool 값을 반환합니다.
- 1 == 1 // 1과 1은 같기 때문에 true
- 2 != 1 // 2는 1과 같지 않기 때문에 true
- 2 > 1 // 2는 1보다 크기 때문에 true
- 1 < 2 // 1은 2보다 작기 때문에 true
- 1 >= 1 // 1은 1보다 크거나 작기 때문에 true
- 2 <= 1 // 2는 1보다 작거나 같기 때문에 false
비교 연산자는 if 구문에 자주 이용됩니다.
let name = "world"
if name == "world" {
print("hello, world")
} else {
print("I'm sorry \(name), but I don't recognize you")
}
// Prints "hello, world", because name is indeed equal to "world".
if 구문에 대한 자세한 내용은 Control Flow를 참조하면 됩니다.
https://iosbeginner.tistory.com/12
만약 같은 타입과 같은 값을 갖는 숫자라면 두개의 tuples를 비교할 수 있습니다. 같지 않은 2개의 값을 찾을 때 까지 tuples는 한 번에 한 값씩 왼쪽에서 오른쪽으로 비교합니다. 두 개의 값들은 비교되고 그 결과는 tuple 비교의 전체 결과를 결정합니다. 만약 모든 요소가 동일하다면 tuples 자체는 동일합니다.
(1, "zebra") < (2, "apple") // true because 1 is less than 2; "zebra" and "apple" are not compared
(3, "apple") < (3, "bird") // true because 3 is equal to 3, and "apple" is less than "bird"
(4, "dog") == (4, "dog") // true because 4 is equal to 4, and "dog" is equal to "dog"
위의 예제를 보면 첫번째 줄에서 왼쪽에서 오른쪽으로 비교하는 것을 볼 수 있습니다. 1은 2보다 작기 때문에 (1, "zebra")은 tupels의 다른 값과 관계 없이 (2, "apple")보다 작은 것으로 간주됩니다. 비교는 이미 tuples 의 첫 번째 요소에 의해 결정되기 때문에 "zebra"가 "apple" 보다 작은 것은 중요하지 않습니다. 그러나 tuples의 첫 번째 요소가 같은 때는 2번째 요소를 비교합니다. 이것이 2번째와 3번째 줄에서 일어나는 것입니다.
Tuples는 각각의 tuples의 각 값에 연산자를 적용할 수 있는 경우에만 연산자로 비교가 가능합니다.
예를 들어 아래의 코드에서 보여준것 처럼 (String, Int)와 같이 두개의 tuples의 타입은 비교가 가능합니다. String과 Int 값은 < 연산자를 사용하여 비교가 가능합니다. 이와 반대로 2개의 tuples 타입인 (String, Bool)은 Bool 값은 <연산자로 비교가 불가능하기 때문에 < 연산자로 비교할 수 없습니다.
("blue", -1) < ("purple", 1) // OK, evaluates to true
("blue", false) < ("purple", true) // Error because < can't compare Boolean values
NOTE
스위프트 표준 라이브러리에는 7개 요소 보다 적은 tuples 비교 연산자를 포함합니다. 7개 혹은 그 이상의 요소를 tuples로 비교하기 위해서는 비교 연산자를 직접 실행해야 합니다.
'SWIFT 공식문서 문법 알아보기 > 02. Basic Operators' 카테고리의 다른 글
Swift 공식문서 해설 Basic Operators - Assignment Operator, Arithmetic Operators (2-2) (0) | 2020.03.21 |
---|