GGURUPiOS
Swift 공식 문서 정리 - (2) Basic Operators (기본 연산자) 본문
Basic Operators (기본 연산자)
연산자는 값을 확인, 변경, 결합 하는 데 사용하는 기호 같은 것들임 ( +, -, && 등등 )
할당 연산자 ( = )
let b = 10
var a = 5
a = b // a에 b의 값을 할당
let (x, y) = (1, 2)
// = 는 값을 반환 하지 않음 ~~if x = y { } 틀린 구문임~~
// if x == y { } 가 맞는 구문
산술 연산자 ( +, -, *, / )
일반적인 산술 연산자. 상식과 같은선에서 동작함
알아둘 점은 String에도 더하기 연산자가 지원됨 “hello, “ + “world” 와 같이 사용 가능
나머지 연산자 ( % )
나머지를 구하는 연산자임.
9 % 4 // 1 반환
-9 % 4 // -1 반환
단항 더하기, 빼기 연산자 ( + , - )
일반적으로 생각하듯이 부호를 바꿀 수 있음
그러나 단항 더하기 연산자는 아무런 작동하지 않음
let three = 3
let minusThree = -three // -3 반환
let plusThree = -minusThree // 3 반환
let minusSix = -6
let alsoMinusSix = +minusSix // -6 반환
복합 할당 연산자
-=, += 처럼 사용 가능
그러나 값을 반환하지는 않음
var a = 1
a += 2 // a는 현재 3
비교 연산자
- 같음 ( a == b)
- 같지 않음 ( a != b)
- 보다 큼 ( a > b)
- 미만 ( a < b )
- 크거나 같음 ( a >= b )
- 보다 작거나 같음( a <= b )
상식선에서 동작해서 쉽게 이해할 수 있다.
튜플에서는 어떻게 동작할까 ?
(1, "zebra") < (2, "apple") // true because 1 is less than 2; "zebra" and "apple" aren't 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"
// 공식문서에서
// 왼쪽 요소부터 하나씩 비교하고, 같지 않은 값이 나올 때 까지 전체 결과를 결정한다고 나와있다.
// 하지만 튜플 유형의 연산자를 값에 적용할 수 있을 때만 사용 가능하다고 나와있다.
// (String, bool) 의 경우 bool 은 ==이나 !=는 적용할 수 있지만, 부등호는 적용할 수 없기 때문에
// ("a", true) < ("a", false) 같은 경우는 에러가 발생한다.
삼항 조건부 연산자 ( 삼항 연산자 )
if 문의 줄임말이라고 보면 됨
if question { a } else { b } ⇒ question ? a : b 이런식으로 작성한다.
어떻게 사용할 것인지는 고려를 해야한다.
코드는 간결해지지만, 남용되면 코드를 읽기 어렵게 만들 수 있기 때문
Nil 병합 연산자 ( nil-coalescing ) ( ?? )
이 연산자는 아래 코드의 줄임말이다.
a != nil ? a!: b
옵셔널 언래핑의 한 방법 인데, 연산자를 사용해서 풀 수 있다.
쉽게 이해하자면 nil일 경우에 값을 지정해 주는 것이라고 생각하면 됨
let colorName = "red"
var userColor: String? // Optional
var colorNameToUse = userColor ?? colorName
// 유저 컬러에 값이 있으면 그 값을 쓰고, 아니면 colorName 의 값을 써라 정도로 이해
범위 연산자
폐쇄 범위 연산자 (…)
a…b ⇒ a부터 b까지(b포함)
반 개방 범위 연산자 (..<)
a..<b ⇒ a부터 b전까지 (b 미포함)
단측 범위 (a…)
a… ⇒ a부터 끝까지
논리 연산자
- 논리적 NOT( !a )
- 논리적 AND( a && b )
- 논리적 OR( a || b )
여러 논리 연산자를 쓰는 복합 표현식은 가장 왼쪽 하위 표현식을 먼저 평가한다.
명시적 괄호
복잡한 표현식을 더 쉽게 읽을 수 있도록 괄호를 추가하여 의도를 명시하는 것이 유용함
if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword {
print("Welcome!")
} else {
print("ACCESS DENIED")
}
'Swift > 공식문서 정리 ( 문법 )' 카테고리의 다른 글
Swift 공식 문서 정리 - (5) Control Flow (0) | 2023.04.19 |
---|---|
Swift 공식 문서 정리 - (4) Collection Types (0) | 2023.04.19 |
Swift 공식 문서 정리 - (3) Strings and Characters (0) | 2023.04.19 |
Swift 공식 문서 정리 - (1) The Basics (0) | 2023.04.18 |
Swift 공식 문서 정리 - About Swift (0) | 2023.04.18 |