Data Types(자료형)
- 메모리에 저장되는 데이터의 종류와 크기를 결정할 때 사용한다.
- Swift에는 6가지 기본 유형의 데이터 타입이 있다.
| 자료형 | 예시 | 의미 |
| Integer (정수형) | 3, -23 | 정수를 저장한다. |
| Floating-point (실수형) | 2.4, 3.14, -23.22 | 소수점이 포함된 수를 저장한다. (32비트 부동소수점) |
| Double (실수형) | 2.422342412414 | 소수점이 포함된 수를 저장한다. (64비트 부동소수점) |
| Boolean (불린형) | true, false | 참과 거짓을 나타내는 값을 저장한다. |
| Character (문자형) | "s" , "a" | 하나의 문자를 저장한다. |
| String (문자열) | "swift", "hello" | 하나 이상의 문자를 저장한다. |
Integer(Int)
- 정수를 저장하기 위한 자료형이다.
- 음수의 유무로 Signed와 Unsigned로 구분 가능하다.
- Signed
- 음수와 0 양수 모두 저장 가능하다.
- 부호가 있으며 양수 음수 모두 저장 가능하다. (-128 ~ 127)
- 음수와 양수를 구분하기위해 부호비트를 사용하며 실제 사용 비트는 7개이다.
- Unsigned
- 음수를 저장할 수 없고 0과 양수만 저장 가능하다.
- 부호가 없으며 양수만 저장 가능하다. (0 ~ 255)
- 부호비트를 사용하지 않기 때문에 실제 사용 비트는 8개이다.
- Signed
| Signed | Value | Unsigned | Value |
| Int8.min | -128 | UnInt8.min | 0 |
| Int8.max | 127 | UnInt8.max | 255 |
| Int16.min | -32768 | UnInt16.min | 0 |
| Int16.max | 32767 | UnInt16.max | 65535 |
| Int32.min | -2147483648 | UnInt32.min | 0 |
| Int32.max | 2147483647 | UnInt32.max | 4294967295 |
| Int64.min | -9223372036854775808 | UnInt64.min | 0 |
| Int64.max | 9223372036854775807 | UnInt64.max | 18446744073709551615 |
바이트 단위값으로 확인하고 싶은 경우
MemoryLayout<Int8>.size → 1바이트 리턴
MemoryLayout<Int16>.size →2바이트 리턴
MemoryLayout<Int32>.size → 4바이트 리턴
MemoryLayout<Int64>.size → 8바이트 리턴
Bit → 0 or 1 (가장 작은 단위)
Byte → 8개의 Bit가 모인 단위
Float, Double
- 실수를 저장하기 위한 자료형이다.
- 메모리의 크기에 따라 소수점의 정확도가 달라진다.
- Float
- 4바이트 6자리까지 정확성을 보장한다.
- 3.141592653589793238462643383279502884197169 → 3.1415927
- Double
- 8바이트 15자리까지 정확성을 보장한다.
- 3.141592653589793238462643383279502884197169 → 3.141592653589793
- 지수와 가수부분을 나누어 저장하기때문에 정수형보다 큰 값을 저장할 수 있다.
- Float
Boolean
- 참과 거짓을 저장하기 위한 자료형이다.
- true → 참
- false → 거짓
- true와 false의 첫글자는 대문자를 사용할 수 없다.
- swift에서는 Bool 타입에 true와 false만 사용할 수 있으며 let valid: Bool = 1 이나 let valid: Bool = 0과 같이 사용할 수 없다.
Character and Strings
- 문자와 문자열을 저장하기 위한 자료형이다.
- Character
- 하나의 문자만 저장할 수 있다.
- "a", "b", "가", "나"
- String
- 문자나 문자열을 저장할 수 있다.
- "Swift", "스위프트", "A", "B", " "
- String타입에서는 "A"나 "B"도 문자열이다.
- Character
let str = "A"
tpyp(of: str) // String.Type
let ch: Character = "A"
type(of: ch) // Character.Type
위 코드에서 str과 ch의 타입을 type(of:)로 확인해보면 str은 String 타입이며, ch는 Character 타입이다.
변수명 옆에 타입을 지정해주지 않으면 문자라도 문자열로 타입이 지정된다.
Character타입으로 사용하고 싶다면 직접 Character타입으로 정의해야 한다.
'Swift > Swift문법' 카테고리의 다른 글
| Swift문법 - Type Conversion (0) | 2022.11.13 |
|---|---|
| Swift문법 - Type Inference and Type Annotation (0) | 2022.10.09 |
| swift문법 - Scope (0) | 2022.09.18 |
| Swift문법 - Naming Convention (0) | 2022.09.11 |
| Swift문법 - Variables and Constants (0) | 2022.09.11 |