스위프트는 타입을 정의하는데 사용할 수 있는 자료형을 미리 정의하여 제공한다. 이와 같은 스위프트의 기본 자료형에대해 알아보자.
Int
정수를 뜻하는 Integer라는 영어의 줄임말로, 부호 있는 정수값을 저장하는데 사용되는 자료형이다.
Int 타입이 저장할 수 있는 정수값의 범위에는 제한이 있는데 이 제한은 컴퓨터의 CPU 사양에 의해 결정된다.
8bit(= 1byte)의 CPU를 가진 컴퓨터라면 2^8인 256개의 값 즉 -128 ~ 127까지를 저장할 수 있는 것이다.
스위프트에선 Int의 경우 다음 표와 같이 서브 자료형이 별도로 정의되어 있다.
자료형 | 저장할 수 있는 값의 범위 | 크기 |
Int8 | -128 ~ 127 | 8bit |
Int16 | -32,768 ~ 32,767 | 16bit |
Int32 | -2,147,483,648 ~ 2,147,483,647 | 32bit |
Int64 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 64bit |
// Int 값에서 자주 사용되는 속성(64bit 기준)
Int.max // 9,223,372,036,854,775,807
Int.min // -9,223,372,036,854,775,808
UInt
Unsigned Integer의 줄인단어로 부호( - )가 없는 정수를 의미한다. 즉 Int와 달리 양수만 저장할 수 있다는 뜻이다.
대신 음수의 범위를 저장할 수 없는 대신, 플러스 범위의 정수에 대해서는 Int보다 두 배 큰 범위까지 저자할 수 있다.
예를들어 8bit CPU의 경우 Int와 같이 값을 256개 저장할 수 있지만 음수값을 저장할 필요가 없으므로 0 ~ 255까지 저장이 가능하다.
UInt 또한 Int와 같이 서브자료형이 정의되어 있다.
자료형 | 저장할 수 있는 값의 범위 | 크기 |
UInt8 | 0 ~ 255 | 8bit |
UInt16 | 0 ~ 65,535 | 16bit |
UInt32 | 0 ~ 4,294,967,295 | 32bit |
UInt64 | 0 ~ 18,446,744,073,709,551,615 | 64bit |
Double & Float
소수점이 포함된 실수 값을 저장해야하는 경우 사용되는 자료형이다.
둘다 실수값을 저장할 수 있는 자료형이지만, Double타입의 경우 64bit 부동소수점 자료형으로써 32bit 부동 소수점 자료형인 Float 타입보다 더 넓은 범위의 소수점 아래 값을 저장할 수 있어 고도로 정확해야하는 부동소수점 값이나 매운 넓은 범위의 실수값을 저장할 때 사용된다. 그 외의 경우 일반적으로 Float가 사용된다.
Float 타입의 경우 소수점 아래 7 ~ 8 자리까지 값을 정확하게 저장할 수 있다.
Double 타입의 경우 소수점 아래 15 ~ 16자리까지 값을 정확하게 저장할 수 있다.
Bool
Bool은 true / false 두 가지 종류의 값만 가진 자료형으로서 주로 논리값을 저장하기 위해 사용된다.
// Bool 타입 변수
var open = close
// Bool 타입 상수
let success = true
let fail = false
String
Int와 같이 가장 많이 사용되는 자료형으로, "abcd", "안녕하세요", "Hello" 처럼 문자열을 저장할 때 사용된다.
스위프트에서 String 타입의 데이터 값을 표현할 땐 큰따옴표(" ")를 사용해야한다.
// String 타입 변수
var myName = "James"
// String 타입 상수
let myJob = "Student"
Charcter
한 개의 문자를 저장할 수 있는 단일 자료형으로 String 타입에 저장된 문자열을 하나씩 분리하면 Character 타입이 된다.
스위프트에선 Character 타입의 데이터 값을 표현할 때도 String 타입과 마찬가지로 큰따옴표를 사용한다.
// Character 타입 변수
var myGrade : Character = "A"
// Character 타입 상수
let failGrade : Character = "F"
:Character라는 표현은 타입 어노테이션으로 스위프트에선 문자 하나를 정의할 때 타입을 정해주지 않으면 자동으로 String 자료형으로 인식되기 때문에 Charcter 타입의 경우 타입을 따로 명시해줘야한다.
출처 : 꼼꼼한 재은씨의 Swift 문법편
'Swift > 문법' 카테고리의 다른 글
스위프트(Swift) - 멀티 라인 스트링 (0) | 2022.04.25 |
---|---|
스위프트(Swift) - 타입이 다른 변수끼리의 결합, 문자열 템플릿 (0) | 2022.04.23 |
스위프트(Swift) - 타입 추론과 타입 어노테이션 (0) | 2022.04.21 |
스위프트(Swift) - 변수와 상수 (0) | 2022.04.19 |
스위프트(Swift) 공부하기 (0) | 2022.04.19 |