
프로그래머스로 알고리즘 문제를 풀면서
,를 사용하여 문제를 해결한 사람이 있어 궁금해서 공부해봤다.
,는 'condition'을 이어붙이는 용도로 쓰는 것이고&&는 두개의 'boolean expression'을 파라미터로 받는 논리 연산자라고 한다.
'condition'은 Swift 공식문서에서 'expression | availability-condition | case-condition | optional-binding-condition' 를 포함한다고 한다. 여기서 'expression'은 표현식이기 때문에
num + 1같은 것을 말한다.
/* && 연산자 -> True 또는 False bool값을 비교해야 하는데,
아래 코드의 옵셔널 바인딩 리턴값은 bool값이 아니다.
따라서 에러가 발생한다 */
if let a = someOptional && let b = someOptional { ... }
// 하지만 아래 코드는 bool 값을 비교하기 때문에, 정상적으로 실행이 된다.
if num1 >= 10 && num2 <= 20 { ... }
/* Comma(,) -> 상수 a, b에 옵셔널 바인딩이 정상적으로
이루어졌다면 두 condition(optional-binding-condition)을
만족하기 때문에 에러가 발생하지 않는다 */
if let a = someOptional, let b = someOptional { ... }
// 아래 코드 또한 'expression'인 'condition'이기 때문에 정상적으로 실행이 된다.
if num1 >= 10 , num2 <= 20 { ... }