
Data Types
데이터 타입의 컨셉은
- 자료형을 데이터 타입 또는 줄여서 타입이라고 함.
- 저장한 데이터에는 타입이 존재
- 다양한 타입들에 다양한 쓰임새
- 자료형은 메모리에 저장되는 메모리의 종류와 크기를 결정함.
- Swift는 계산을 할 때 자료형을 통일시켜야 한다.
// ex)
Int + Double = X // 👎🏻
Int + Int = Int // 👍🏻
Double + Double = Double // 👍🏻
내장 자료형
- Interger Types : 정수 자료형 Int
- Floating-Point Types : 32비트 부동 소수점 자료형 // ex. 3.14와 같은 실수 Float
- Double Types : 64비트 부동 소수점 자료형
- Boolean Types : 참과 거짓 Bool
- Character Types : 문자 자료형 Character
- String Types : 문자열 자료형 String
- Any : 다양한 데이터 타입의 값을 수용할 수 있는 데이터 타입. 반드시 형 변환을 해서 사용해야 함. Any
- Tuple: 여러 데이터의 묶음. 다양한 데이터 타입을 가진 값들을 묶을 수 있다.
(Floating-Point Types와 같이 실수를 저장하는 Double이 있는데, 차이점은 Double은 64비트 부동 소수점형이라는 것.)
let name: String = "StringTest"
var age: Int = 20
var pie: Float = 3.14
var boolTest: Bool = true
Tuple의 사용 예시.
let exOfTuple: (Int, Int) = (6, 9)
Overflow
- Overflow란 자료형에 저장할 수 있는 값의 범위를 넘어서는 것이다.
- Swift에서는 Overflow를 허용하지 않는다. (산술연산자가 허용하지 않음.)
- Overflow가 발생하면 값이 순환한다.
- Overflow 연산자를 사용하면 사용 가능하다.
Type Inference (형식 추론)
let number = 123
type(of: number)
위와 같이 명시적으로 자료형을 선언하지 않는다면, 초기값을 기반으로 자료형을 결정하는데, 이것을 Type Inference라고 한다.
두번째 코드로 자료형을 확인해보면, Int 자료형이라고 뜬다.
number에 실수를 저장하면 Double이라고 뜰 것이고, 문자열을 입력한다면 String이라고 뜰 것이다.
반드시 초기값을 입력해야만 형식 추론이 가능하다.
Type Inference의 예시
123 -> Int
1.23 -> Double
"Hello" -> String
true -> Bool
false -> Bool
Type Annotation
자료형을 직접 선언하는 것.
// Syntax
let str: Type = value
var test: Type = value
// ex)
let num: Int = 123
let value: Double
value = 11.2
// 이런식으로 선언과 초기화를 분리할 수도 있다.
형식 추론이 가능한데, Type Annotation을 사용하는 이유는
Int, Double, String 말고 다른 자료형을 사용하기 위해서는 반드시 Type Annotation을 선언해야 하기 때문이다.
let char: Character = "X"
// 문자를 저장하고 싶다면 이런식으로 직접 선언해야한다.
또한 Type Inference는 초기값을 기반으로 자료형을 결정하는데 이는 컴파일 시간에 영향을 미치기 때문에
컴파일 시간을 줄이기 위해 Type Annotation으로 자료형을 선언하는 경우가 많다.
Type Conversion
타입을 변경하는 것
// Syntax
Type(value)
//ex)
let str = "123"
let num = Int(str)
// 결과 "123" -> 123 (문자열 123이 정수 123으로 바뀜)
Type Conversion이 실패하면 nil이 리턴된다.
let str = "number"
let num = Int(str)
// 결과 "number" -> nil
Double을 Int로 변환해보자.
let rate = 1.94
let amt = 10_000_000
let result = rate * Double(amt)
Int(rate * Double(amt)) // Double과 Double을 곱해서 Int로 바꿈.
Int(rate)*amt
// 개별값을 Int로 바꿔서 곱하는 코드.
// rate를 Int로 바꾸었기 때문에 소숫점이 날아가서 제대로된 값이 안나옴
Type Alias
기본 자료형에 새로운 이름을 추가하는 문법. (UpperCamelCase로 작성해야 함)
쉽게 말해 자료형에 별명을 지어주는 것.
// Syntax
typealias NewName = TypeName
// ex)
typealias Doub = Double
let lat: Doub = 12.34
let lat: Double = 12.34
// 위의 두 코드가 같은 값을 도출한다.
let lte: Double = 56.78
let lte: Doub = 56.78
// 위의 두 코드가 같은 값을 도출한다.
위의 코드를 보면 lat과 lte 둘다 Type Annotation으로 자료형을 선언했고,
Type Alias로 인해 Doub라고 작성해도 Double로 선언할 수 있게 되었다.
'Language > Swift' 카테고리의 다른 글
Swift 기본 문법 - 타입 캐스팅(Type Casting) 작성중 (0) | 2024.09.20 |
---|---|
Swift 기본 문법 - 문자열 보간(String interpolation) (0) | 2024.09.20 |
Swift 기본 문법 - 반복문 (0) | 2024.09.12 |
Swift 기본 문법 - Collection 컬렉션(Array, Dictionary, Set) (0) | 2024.09.12 |
Swift 기본 문법 - 변수와 상수 (2) | 2024.09.12 |
살아남는 iOS 개발자가 되기 위해 끊임없이 노력하고 있습니다.