스위프트 표현식
가장 기본적인 스위프트 표현식은
var myResult = 1 + 2
와 같은 하나의 연산자와 두 개의 피연산자 그리고 할당자 이다.
피연산자는 앞의 예제에서 사용된 것처럼 실제 숫자 값이 될 수도 있지만, 변수 또는 변수와 상수를 혼합하여 사용될 수 있다.
기본 할당 연산자
var x: Int? // "옵셔널" 정수형 변수 선언
var y = 10 // 정수형 변수 선언ㅇ
x = 10 //x에 정수 10 값 할당
x = x! + y // 언래핑한 x 값과 y값의 합을 x에 할당
x = y // y의 값을 x에 할당
연산자의 가장 기본은 = 연산자로 변수형, 값 등 읜쪽의 결과를 오른쪽에 할당하는 방식이다.
산술 연산자
연산자는 크게 두 개의 피연산자를 받는 이항 연산자와 단항 연산자가 있다.
var x = -10 // 단항 연산자 뺄셈으로 만듬
var y = 10, z = 30
x = y * 10 + z - 5 / 4 // 변수와 상수, 숫자 등 하나의 표현식 안에 여러 개의 연산자 사용 가능
복합 할당 연산자
스위프트는 산술 또는 논리 연산과 할당 연산자를 결합하기 위해 설계된 연산자들을 다양하게 제공한다.
프로그래머의 타이핑을 조금이라도 줄여주기 위해 아래와 같이 표현을 줄여줄 수 있다.
x = x + y
x += y // x = x + y와 같은 결과
x -= y
x *= y
x /= y
x %= y // 나머지
비교 연산자
비교를 수행하는 데 사용되는 논리 연산자들이 있따. 이들 연산자는 모두 비교 겨롹에 따라 불리언 결과를 반환한다.
두 개의 피연산자를 가지고 작업하는 이항 연산자다.
비교 연산자는 주로 프로그램의 흐름 제어 로적을 만드는 데 가장 많이 사용된다.
if x == y {} // 비교 연산자
var result : Bool?
var x = 10
var y = 20
result = x < y // result = true
위와 같이 비교 결과는 Bool형태로 true의 결과가 나온다.
x == y // x와 y가 같다
x > y // x가 y를 초과한다
x >= y // x가 y값 이상이다
x != y // x와 y가 다르다
불리언 논리 연산자
스위프트 역시 true, false 값을 반환하도록 설계된 논리 연산자들도 제공한다.
대표적으로 NOT, AND, OR이 있다.
if (10 < 20) || 20> 10{} // || = or연산자로 ~~이거나
if (10 < 20) && 20> 10{} // && = and연산자로 ~~이거나
var falg = true
var secondFlag = !flag // 불리언 값의 not이 되는 반대 값을 부여
범위 연산자
스위프트는 값의 범위를 선언할 수 있도록 하는 몇 가지 연산자가 포함되어 있따.
이들 연산자는 프로그램에서 반복 작업을 할 때 매우 중요하다.
var x = 5, y = 8
x...y // 닫힌 범위 연산자, 5~8을 지칭한다.
x..<y // 반 개방 범위 연산자, 5 ~ 7 을 지칭한다.(마지막 값은 제외)
x... // 단방향 범위 연산자로 범위 앞의 시작 또는 끝에 달할 때까지 또는 다른 조건이 충족될 때 까지
...y // 문자열 혹은 배열에서 자주 쓰인다
삼항 연산자
스위프트는 코드 내에서의 판단을 간단히 하기 위한 방법으로 삼항 연산자를 지원한다.
조건문 ? 참(true)의 경우의 표현식 : 거짓(false)의 경우의 표현식
이와 같이 삼항 연산자의 동작 방식은 true 또는 false를 반환하는 표현식을 조건문위치에 두는 것이다.
let x = 10, y = 20
print("Largest number is \(x > y ? x : y)") // x > y 가 참이면 x, 거짓이면 y
출처 : 핵심만 골라 배우는 SwiftUI 기반의 iOS 프로그래밍
책을 보면서 내용을 정리했습니다.. 혹시 틀린 내용이 있다면 댓글로 언제나 말씀해주세요!!!☺️
'iOS > Swift 문법' 카테고리의 다른 글
[Swift 문법] 함수, 메서드 (0) | 2021.12.27 |
---|---|
[Swift 문법] 제어 흐름, 반복문과 조건문 (0) | 2021.12.24 |
[Swift 문법] 타입 캐스팅과 타입 검사 (0) | 2021.12.22 |
[Swift 문법] 옵셔널 타입 (0) | 2021.12.21 |
[Swift 문법] 타입 선언과 타입 추론, 튜플 (0) | 2021.12.21 |