기초

5.Boolean,String,Type Inference

섭섭's 2024. 5. 31. 02:37

Boolean

Boolean은 논리학에서 참과 거짓을 나타내는데 사용됩니다.

 

또한, 논리 연산이란 주어진 논리식을 판단하여 

 

참(true)와 거짓(false)를 결정하는 사안입니다.

let happy = true

 

해당 코드에서 true 는 참을 표현하는 boolean 리터럴 입니다.

 

let happy = True

 

스위프트는 대 소문자를 엄격하게 구분하기 때문에 True 를 사용하게 된다면

 

더이상 boolean 리터럴이 아니게 됩니다.

 

boolean 리터럴은 반드시 소문자로 표시해야 합니다.

 

let happy = false


거짓을 나타내고 싶다면 false 를 쓰면 됩니다.

 

false는 거짓을 나타내는 boolean 리터럴 입니다.

 

Boolean 자료형

 

let happy = 0

 

false 자리에 0을 넣고 실행하면 실행이 됩니다.

 

실행이 되는 이유는 happy라는 상수에 이름을 클릭해 보면

 

int 타입으로 저장이 되었기 때문입니다.

 

스위프트는 명시적으로 타입을 지정하지 않으면 저장하는 값에 따라서 타입을 추론합니다.

 

let happy: Bool = 0

 

만약 예시의 코드처럼 코드 타입을 고정한다면

 

Int 값을 boolean 값으로 사용할 수 없다고 컴파일 에러가 뜨게 됩니다.

 

boolean 타입에는 true 와 false 중 하나만 저장할 수 있기 때문입니다.

 

let happy: Bool = true

 

상수의 이름을 지정할 때 

 

이름만으로 어느정도 값의 성격을 파악할 수 있게 지어야 합니다.

 

그렇기 때문에 보통 is나 has를 접두어로 붙이게 됩니다.

 

String Literals

 

Have a nice day

 

이 문자는 보기에는 문자열 같지만 스위프트에서는 문자열로 인식하지 않습니다.

 

스위프트에서 문자열은 큰따옴표사이에 나열된 문자 집합입니다.

 

그렇기 때문에

"Have a nice day"

 

예시처럼 큰따옴표로 감싸야 합니다.

 

이런식으로 큰따옴표로 감싼 문자열은 

 

문자열 리터럴 이라고 합니다.

 

let str = "1"

 

상수에 문자열 1을 저장하고 str 을 옵션 클릭 해보면

 

타입이 string으로 나옵니다. 이런식으로 확인할 수 있고 

 

Print(type(of:str))

 

이런식의 명령어를 입력해서도 확인이 가능합니다.

(Xcode가 버전업 되면서 명령어가 바뀌었음)

 

let ch: Character = "1"

 

이번에는 타입을 Character 로 지정을 하여 

타입을 확인해 보면

 

Character.Type이라고 표시되게 됩니다.

 

즉 타입이 String 으로 저장되게 되면 문자열로 저장되는 것 이고

 

타입이 Character 로 저장되게 된다면 문자로 저장되는 것 입니다.

 

Type Inference(형식 추론)

우리가 변수나 상수를 선언 할 때

let num = 123
Print(type(of:num))

 

예시의 코드처럼 타입을 명시적으로 선언하지 않으면

 

저장하는 값에 따라서 타입이 결정됩니다.

 

스위프트 컴파일러가 저장하는 값을 보고 가장 적절한 값을 선택하는 것을 

 

형식 추론(type inference) 라고 합니다.

 

예시를 들어 위의 예시코드의

 

let num = 123은 정수 리터럴입니다.

 

정수 리터럴은 int 타입으로 추론됩니다.

 

왜 int 로 추론이 되냐하면 정수를 가장 빠르게 처리하는 것이 int 이기 때문에

 

int로 추론이 되는 것 입니다.

 

 

Type Annotation

타입을 명시적으로 선언할 때에는 Type Annotation 문법을 사용합니다.

 

문법에 핵심이 되는 부분은 

let name: Type = value
var name: Type = value

 

예시의 코드의 Type 부분입니다.

 

변수나 상수를 선언 할 때 이름뒤에 :(콜론)을 적은다음에

 

Type의 이름을 적으면 됩니다.

 

:과 Type 이름 사이에는 공백이 없어도 되지만

 

예제의 코드처럼 하나의 공백을 줘서 분리하는게 좋습니다.

.

let value: Double
value = 12.3

 

또한 예제의 코드처럼 선언하는 부분과

저장하는 부분을 별도의 라인으로 구분할 수 있습니다.

'기초' 카테고리의 다른 글

7.Conditional Statements  (1) 2024.06.02
6.Operators  (0) 2024.06.01
4.메모리와 Int Float  (0) 2024.05.30
3.Scope -1  (0) 2024.05.26
2. 이름 정의 규칙  (0) 2024.05.26