Swift/문법

스위프트(Swift) - 기본 자료형

josee2 2022. 4. 20. 18:23

 

스위프트는 타입을 정의하는데 사용할 수 있는 자료형을 미리 정의하여 제공한다. 이와 같은 스위프트의 기본 자료형에대해 알아보자.

 

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 문법편