본문 바로가기

Programming/Swift for Beginners

[Swift] 011 Boolean - True or False (참 또는 거짓) for beginners


Swift가 지원하는 또 다른 타입은 불(Bool) 또는 불리언(Boolean)형입니다. 불형은 true 또는 flase의 단일 값을 가지고 있으며 "12가 3보다 더 큰가?" 또는 "55는 12와 같은가?" 와 같은 질문에 대한 답의 비교 수식에 사용됩니다. 이런 논리 비교는 객체 리스트의 반복을 종료하거나 조건문의 실행 경로를 결정하는 등 소프트웨어 개발에 많이 사용됩니다.

아래 예제에 사용된 비교식은 '~보다 더 큰',  '더 크거나 같은', '~보다 작은', '작거나 같은', '같은', '같지 않은' 등의 비교 연산을 나타내고 있습니다. 비교의 "참(trueness)"을 근거로 불의 true 또는 false가 반환됩니다. Int 형과 Double 형의 수치 타입 모두 비교되는지 보여주는 Int 형 상수 및 Double 형 상수를 비교하고 그리고 같은 타입까지도 비교합니다.▼

결과 (The Result)

불 연산식의 결과를 변수나 상수에 할당하는 데 필요한 let 또는 var 키워드를 사용하지 않는 것에 주목할 필요가 있습니다. 그리고 조건문 평가의 결과도 다릅니다.

$R3: Bool = false

$R3는 무엇일까요? Swift REPL에서는 $R3가 임시 변수로 알려졌습니다. $R3는 결과값을 가지며 위 예제에서는 결과값이 false입니다. 게다가 $R3가 변수인 것처럼 임시 변수를 참조할 수도 있습니다.

또한, 변수로 선언된 것처럼 임시 변수에 값을 할당할 수도 있습니다.




What about strings? (문자열 비교도 가능할까?)

문자열이 동등한지 테스트하기 위해 같은 비교 연산자를 사용할 수 있다면 멋지지 않을까요?

C언어나 Objective-C 언어에 익숙한 사용자들은 두 개의 문자열이 동등한지 테스트하는 것이 얼마나 

지루한 직업인지 이미 알고 있을 것입니다.


C 언어에서는 아래와 같은 코드를 사용합니다.

int result = strcmp("this string", "that string")


Objective-c에스는 다음 코드를 사용합니다.

NSComparisonResult result = [@"this string" compare:@ "that string"];


다음 예제를 보면 Swift가 매우 쉽게 연산을 읽고 입력하고 있음을 알 수 있습니다.

Swift의 예제가 매우 간단하다는 것은 결과값만 보아도 아 수 있습니다. Swift의 문자열 비교 기능이 

좀 더 자연스럽고 표현력이 있습니다.