,(콤마)와 &&(앰퍼샌드)
스위프트 문법을 공부를 하다보면 if문에서 ,(콤마)를 사용하는 경우도 있고 &&(앰퍼샌드)를 사용하는 경우도 있었습니다. 하지만 이 둘의 차이점에 대해 몰랐었기 때문에, 이번 기회에 이 둘의 차이점을 알아보고자 합니다.
&&
우선 &&에 대해 알아보겠습니다.
&&는 논리 연산자로, 여러 개의 boolean expression을 하나의 boolean expression으로 연산해줍니다.
예를 들어 true인 boolean A와 false인 boolean B가 있을 때, A && B는 두 개가 모두 참이어야 true가 되고, 그렇지 않으면 false를 반환합니다. 즉, 두 개(A와 B)의 boolean expression을 하나(false)의 boolean expression으로 만들어 주었습니다.
우리가 보통 if문을 통해 모든 조건이 참이어야 실행되게 할 때 &&를 많이 사용합니다.
,
그 다음은 ,에 대해 알아보겠습니다.
,는 condition을 이어서 쓸 수 있도록 해주는 것인데, 여러 가지 condition들이 붙어있는 것을 condition-list라고 합니다.
condition-list는 condition이나 condition-list를 의미하며, 조건?이 연속적으로 나열된 것을 생각하시면 될 것 같습니다.
condition은 1) expression, 2) availability-condition, 3) case-condition, 4) optional-binding-condition 중 하나를 나타내는 것입니다. 따라서 ,은 여러 가지 역할을 하고 있음을 알 수 있습니다.
expression
그런데 여기서 주목해야 할 점은 condition의 역할 중 expression이 있다는 것인데, 이는 &&를 볼 때 나왔던 expression이란 표현과 같은 표현이라는 것입니다.
다음과 같은 식이 있다고 가정해봅시다.
// 1)
if let a = optionalTypeA, let b = optionalTypeB { ... } // O
// 2)
if let a = optionalTypeA && let b = optionalTypeB { ... } // X
1번 식은 가능하지만, 2번 식은 불가능합니다.
왜냐하면 1번 식에서는 ,의 역할이 optional-binding-condition을 연결해주는 용도로 사용되었기 때문입니다.
하지만 &&는 boolean expression으로 연산해주는 역할밖에 없기 때문에 틀린 식이 되는 것입니다.
따라서 옵셔널 바인딩을 사용하거나 여러 조건들을 동시에 사용하고 싶은 경우에는 ,만 사용할 수 있지만,
boolean expression을 여러 개 나열하고 싶은 경우에는 ,와 &&를 둘 다 사용할 수 있습니다.
평소엔 아무 생각없이 사용하였는데, 이젠 둘의 차이점을 알고 사용할 수 있을 것 같습니다.
'Swift' 카테고리의 다른 글
[Swift] 클래스와 프로토콜에 대한 고찰 및 사용 기준 (0) | 2025.01.23 |
---|---|
[Swift] 스위프트 - Character를 Int로 변환 (wholeNumberValue) (0) | 2024.01.01 |
[Swift] 스위프트 - 배열에 있는 문자와 문자열 간단하게 출력하기 (String, joined, sorted) (0) | 2024.01.01 |
[Swift] Swift의 메모리 구조 (0) | 2023.08.18 |
[Swift] Swift API Design Guidelines 요약 및 정리 (0) | 2023.08.14 |
,(콤마)와 &&(앰퍼샌드)
스위프트 문법을 공부를 하다보면 if문에서 ,(콤마)를 사용하는 경우도 있고 &&(앰퍼샌드)를 사용하는 경우도 있었습니다. 하지만 이 둘의 차이점에 대해 몰랐었기 때문에, 이번 기회에 이 둘의 차이점을 알아보고자 합니다.
&&
우선 &&에 대해 알아보겠습니다.
&&는 논리 연산자로, 여러 개의 boolean expression을 하나의 boolean expression으로 연산해줍니다.
예를 들어 true인 boolean A와 false인 boolean B가 있을 때, A && B는 두 개가 모두 참이어야 true가 되고, 그렇지 않으면 false를 반환합니다. 즉, 두 개(A와 B)의 boolean expression을 하나(false)의 boolean expression으로 만들어 주었습니다.
우리가 보통 if문을 통해 모든 조건이 참이어야 실행되게 할 때 &&를 많이 사용합니다.
,
그 다음은 ,에 대해 알아보겠습니다.
,는 condition을 이어서 쓸 수 있도록 해주는 것인데, 여러 가지 condition들이 붙어있는 것을 condition-list라고 합니다.
condition-list는 condition이나 condition-list를 의미하며, 조건?이 연속적으로 나열된 것을 생각하시면 될 것 같습니다.
condition은 1) expression, 2) availability-condition, 3) case-condition, 4) optional-binding-condition 중 하나를 나타내는 것입니다. 따라서 ,은 여러 가지 역할을 하고 있음을 알 수 있습니다.
expression
그런데 여기서 주목해야 할 점은 condition의 역할 중 expression이 있다는 것인데, 이는 &&를 볼 때 나왔던 expression이란 표현과 같은 표현이라는 것입니다.
다음과 같은 식이 있다고 가정해봅시다.
// 1)
if let a = optionalTypeA, let b = optionalTypeB { ... } // O
// 2)
if let a = optionalTypeA && let b = optionalTypeB { ... } // X
1번 식은 가능하지만, 2번 식은 불가능합니다.
왜냐하면 1번 식에서는 ,의 역할이 optional-binding-condition을 연결해주는 용도로 사용되었기 때문입니다.
하지만 &&는 boolean expression으로 연산해주는 역할밖에 없기 때문에 틀린 식이 되는 것입니다.
따라서 옵셔널 바인딩을 사용하거나 여러 조건들을 동시에 사용하고 싶은 경우에는 ,만 사용할 수 있지만,
boolean expression을 여러 개 나열하고 싶은 경우에는 ,와 &&를 둘 다 사용할 수 있습니다.
평소엔 아무 생각없이 사용하였는데, 이젠 둘의 차이점을 알고 사용할 수 있을 것 같습니다.
'Swift' 카테고리의 다른 글
[Swift] 클래스와 프로토콜에 대한 고찰 및 사용 기준 (0) | 2025.01.23 |
---|---|
[Swift] 스위프트 - Character를 Int로 변환 (wholeNumberValue) (0) | 2024.01.01 |
[Swift] 스위프트 - 배열에 있는 문자와 문자열 간단하게 출력하기 (String, joined, sorted) (0) | 2024.01.01 |
[Swift] Swift의 메모리 구조 (0) | 2023.08.18 |
[Swift] Swift API Design Guidelines 요약 및 정리 (0) | 2023.08.14 |