Swift/개념 & 응용

[Swift] Swift 문법 - 연산자

유정주 2021. 8. 19. 00:10
반응형

안녕하세요.

 

오늘은 Swift의 연산자에 대해 알아보겠습니다.

공부하다보니 Swift 3.0 전후로 연산자에 작은 변화가 있던 것 같네요.

요즘엔 Swift는가 많이 안정화가 된 것 같지만 변화가 많아 꾸준히 신경써야 하는 언어인 것 같습니다.

 

그럼 시작하겠습니다. 


참고 자료

Apple Swift Document

https://developer.apple.com/documentation/swift

https://developer.apple.com/documentation/swift/swift_standard_library/operator_declarations

 

해당 포스팅은 Smile Han님의 유튜브 영상을 참고하며 작성하였습니다.

https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA


 

할당 연산자(=)

왼쪽에는 할당되는 변수 또는 상수를, 오른쪽에는 할당할 값을 작성합니다.

오른쪽에 산술식이나 논리식을 넣고 그 결과를 왼쪽의 변수나 상수에 할당합니다.

var x: Int
x = 10 //x에 10 할당

산술 연산자

산술 연산자는 보통 이항 연산자입니다.

곱셈(*), 나눗셈(/), 덧셈(+), 뺄셈(-), 나머지 연산(%)이 있습니다.

Swift는 같은 자료형끼리만 연산이 가능합니다.

 

단항 연산자로는 값이 음수임을 가리키는 마이너스 연산자(-)가 있습니다.

var x = -5

복합 할당 연산자

산술과 동시에 결과 값을 저장합니다.

x += 1 // x에 1을 더한 값을 x에 할당한다.
x -= 1 // x에 1을 뺀 값을 x에 할당한다.

증감 연산자

값 1을 올리거나 내릴 때 Swift 3 이전까지는 ++, -- 연산자를 사용할 수 있었습니다.

하지만 Swift 3에서 해당 연산자가 사라져서 덧셈 연산자로 증감시켜야 합니다.


비교 연산자

비교의 결과를 Boolean 값으로 반환해줍니다.

x == y x와 y의 값이 같으면 true
x > y, x < y x가 y 초과(미만)라면 true
x >= y, x <= y x가 y 이상(이하)이라면 true
x != y x와 y의 값이 다르면 true
x === y x와 y가 같은 주소를 가진다면 true

Boolean 논리 연산자

NOT(!), AND(&&), OR(||), XOR(^)이 있습니다.

다른 언어와 차이점이 없으므로 자세한 설명은 스킵하겠습니다.


범위 연산자

범위를 나타내는 연산자입니다.

닫힌 범위 연산자(...) x 이상 y 이하의 범위(y 포함)
반 열린 범위 연산자(..<) x 이상 y 미만의 범위(y 미포함)
One=Sided Ranges 시작부터 설정 범위까지의 범위 or 설정 범위부터 끝까지의 범위
let items = ["A", "B", "C", "D"]
for item in items[1...] {
	print(item, terminator: "")
} //BCD

print("")

for item in items[..<3] {
	print(item, terminator: "")
} //ABC

삼항 연산자

비교 연산을 빠르게 하기 위해 Swift는 삼항 연산자를 지원합니다.

조건 ? 참 결과 : 거짓 결과입니다.

x > y ? x : y

x가 y보다 크다면 x가 결과이고 x가 y보다 작다면 y가 결과입니다.


Nil-Coalescing 연산자(Nil 합병 연산자)

옵셔널 변수가 nil일 때 연산자 뒤의 값을 대신 할당합니다.

var var1: Int?
var nilVar = var1 ?? 10
print(var1, nilVar)

실행결과

var1은 옵셔널 변수이고 따로 초기화, 할당을 안 해주었기 때문에 nil입니다.

변수 nilVar를 초기화할 때 Nil-Coalescing 연사자를 사용하여 var1이 nil이라면 10이 할당되게끔 작성하였습니다.

var1이 nil이기 때문에 10이 할당되었습니다.


오늘은 연산자에 대해 알아보았습니다.

설명을 들으며 자주 안 쓰는 연산자의 설명은 생략하였습니다.

모든 연산자에 대해 알고 싶다면 Swift 문서를 참고하시길 바랍니다.

 

감사합니다! 


아직은 초보 개발자입니다.

더 효율적인 코드 훈수 환영합니다!

공감 댓글 부탁드립니다.

반응형