프로그래밍에서 데이터 타입은 프로그래밍의 기본 요소로서 매우 중요한 역할을 한다. 이번 포스트에서는 스위프트의 데이터 타입에 대해 살펴보자.
기본 데이터 타입
Swift에는 몇가지 기본 데이터 타입이 존재하며, 내용은 다음과 같다.
Int
- 정수를 표현하는 데 사용된다. 64비트 플랫폼에서는 64비트 정수, 32비트 플랫폼에서는 32비트 정수를 의미한다.
UInt
- 부호가 없는 정수이며, 음수를 허용하지 않고 양수만 표현할 수 있다.
1
| let unsignedInt: UInt = 50
|
Float
- 32비트 부동소수점 숫자를 표현하며, 주로 소수점을 포함한 숫자를 표현하는데 사용된다.
Double
- 64비트 부동소수점 숫자를 표현하며, Float보다 더 많은 소수점 자리를 표현할 수 있다.
1
| let precisePi: Double = 3.1415926535
|
Bool
- 논리값을 표현하며, true 또는 false 값을 가질 수 있다.
1
| let isSwiftAwesome: Bool = true
|
Character
- 단일 문자를 표현하며, Swift의 Character는 유니코드 문자를 지원합니다.
1
| let letter: Character = "A"
|
String
- 문자열을 표현하며, String은 문자의 시퀀스이다. (Swift는 유니코드 완전 지원을 제공한다.)
1
| let greeting: String = "Hello, Swift!"
|
컬렉션 데이터 타입
Swift는 여러 값의 그룹을 표현할 수 있는 몇 가지 컬렉션 타입을 제공한다.
Array
- 동일한 타입의 값들을 순서대로 저장하는 리스트이다.
1
| let numbers: [Int] = [1, 2, 3, 4, 5]
|
Set
- 동일한 타입의 유일한 값들을 저장하는 컬렉션입니다. 순서가 없고, 중복된 값을 허용하지 않습니다.
1
| let uniqueNumbers: Set<Int> = [1, 2, 3, 3, 4]
|
Dictionary
- 키와 값의 쌍으로 구성된 컬렉션입니다. 각 키는 유일하며, 키와 값의 타입을 지정할 수 있습니다.
1
| let studentGrades: [String: Int] = ["Alice": 90, "Bob": 85, "Charlie": 88]
|
사용자 정의 데이터 타입
Swift에서는 구조체(Struct), 클래스(Class), 열거형(Enum) 등을 사용하여 사용자 정의 데이터 타입을 만들 수 있다.
Struct
- 값 타입으로, 주로 간단한 데이터 구조를 정의하는 데 사용됩니다.
1
2
3
4
5
6
| struct Person {
var name: String
var age: Int
}
let john = Person(name: "John", age: 30)
|
Class
- 참조 타입으로, 더 복잡한 데이터 구조나 객체 지향 프로그래밍을 위한 기능을 제공한다.
1
2
3
4
5
6
7
8
| class Animal {
var name: String
init(name: String) {
self.name = name
}
}
let dog = Animal(name: "Dog")
|
Enum
- 연관된 값들의 그룹을 정의하는 데 사용됩니다. 각 값은 고유한 식별자를 가집니다.
1
2
3
4
5
6
7
8
| enum CompassPoint {
case north
case south
case east
case west
}
let direction = CompassPoint.north
|
튜플
튜플(Tuple)은 Swift에서 데이터 타입 중 하나다. 튜플은 여러 개의 값을 하나의 그룹으로 묶어주며, 이는 다양한 데이터 타입을 하나의 단위로 묶어 처리할 때 유용하다. 튜플은 함수에서 여러 개의 값을 반환하거나, 관련된 여러 개의 값을 하나로 묶을 때 자주 사용된다.
선언 및 초기화
- 튜플은 소괄호 ()를 사용하여 정의하며, 각 값은 쉼표로 구분합니다. 예를 들어, 두 개의 정수를 포함하는 튜플은 다음과 같이 정의할 수 있다.
1
| let mixedTuple: (Int, String, Double) = (1, "Hello", 3.14)
|
요소 접근
- 튜플의 각 요소는 인덱스를 사용하여 접근할 수 있다. 인덱스는 0부터 시작한다.
1
2
3
| let person: (String, Int) = ("Alice", 25)
let name = person.0 // "Alice"
let age = person.1 // 25
|
- 또는 튜플을 정의할 때 각 요소에 이름을 부여하여 접근할 수 있다.
1
2
3
| let person: (name: String, age: Int) = (name: "Alice", age: 25)
let name = person.name // "Alice"
let age = person.age // 25
|
사용 예시
1. 여러 값을 반환하는 함수
- 튜플은 함수가 여러 값을 반환할 때 유용하다.
1
2
3
4
5
6
| func getUserInfo() -> (String, Int) {
return ("Bob", 30)
}
let userInfo = getUserInfo()
print("Name: \(userInfo.0), Age: \(userInfo.1)")
|
2. 임시 데이터 그룹화
- 튜플은 간단하게 관련 데이터를 그룹화할 때 사용된다.
1
2
| let coordinates: (x: Int, y: Int) = (10, 20)
print("x: \(coordinates.x), y: \(coordinates.y)")
|
3. 스위프트의 패턴 매칭과 함께 사용
- 튜플은 스위프트의 패턴 매칭과 함께 사용될 수 있어 강력한 기능을 제공한다.
1
2
3
4
5
6
7
8
9
| let point = (2, 3)
switch point {
case (0, 0):
print("The point is at the origin.")
case (let x, 0):
print("The point is on the x-axis at \(x).")
case (0, let y):
print("The point is on the y-axis at
|
읽어주셔서 감사합니다. 😊
Reference
ChatGPT - OpenAI