본문 바로가기
Swift

Swift 3. Swift의 데이터 타입 고급(1) Any, 안심, 추론, 별칭, 튜플.

by MiaCoder 2023. 6. 16.

애플이 제공하고, 가장 많이 이용하는  mac, ios에서 사용하는 프로그램, 앱을 만들기 위해서는

 

애플이 개발한 Swift언어를 알아야 합니다.

 

ios 앱 개발을 위해 기반 언어인 Swift의 기본 데이터 타입을 정리해 보겠습니다.

 

데이터 타입은 기본적으로 대문자 카멜케이스(upper camel case)를 이용합니다.

 

 

1. Any, AnyObject, nil

 

Any는 Swift의 모든 데이터 타입을 사용할 수 있다는 뜻입니다.

 

변수 또는 상수의 데이터 타입이 Any로 지정되어 있다면 어떤 종류의 데이터 타입이든

상관없이 할당할 수 있습니다.

 

var someVar: Any = "LEE"

someVar = 50

someVar = 100.1

위와 같이 정수, 실수 모두 정할 수 있습니다.

 

 

nil은 특정 타입이 아닌 타입이 없다는 뜻입니다.

 

따라서 변수 또는 상수에 값이 없는 경우 nil을 사용하면 런 타임오류(잘못된 메모리 접근)가 발생합니다.

 

없는 것 또한 없다라는 값이 있는 것이기 때문입니다.

 

 

2. 데이터 타입 안심

 

Swift는 데이터 타입을 안심하고 사용할 수 있는 언어입니다.

 

즉 Int타입에 Charcter을 할당하면 오류로 잡아줍니다.

 

이렇게 컴파일 시 타입을 확인하는 것을 Swift의 타입 확인이라고 합니다.

 

 

3. 타입추론

 

Swift는 타입을 정하지 않아도 할당 값에 따라 적절한 타입을 정합니다.

 

var name = "LEE"

name = 100

print(name)

위에서는 값이 LEE이므로 타입추론을 통해 String로 정해졌으므로 Int인 100을 넣으면

오류가 발생합니다.

 

 

4. 타입 별칭

 

Swift는 데이터 타입에 별칭을 붙일 수 있습니다.

 

typealias명령어를 통해 구현할 수 있습니다.

 

typealias MyInt = Int
typealias MyDouble = Double

var test1: MyInt = 100
var test2: MyDouble = 1.11

print(test1)
print(test2)

이렇게 별칭을 붙여도 이름만 하나 더 있는것이기 때문에

 

MyInt와 Int는 같은 타입으로 취급합니다.

 

 

5. 튜플

 

튜플은 사용자가 지정하여 만드는 사용자 지정 타입입니다.

 

이는 일정 타입의 나열로 튜플 타입을 생성해 줄 수 있습니다.

 

var person: (String, Int, Double) = ("LEE", 10, 1.1)

print("이름: \(person.0), 나이: \(person.1), 신장\(person.2)")

person.1 = 20

print("이름: \(person.0), 나이: \(person.1), 신장\(person.2)")

위와 같이 여러 개의 타입을 나열하고, 튜플.순서 를 사용하여 값을 풀력하거나 새로 정의할 수 있습니다.

 

var person2: ( name: String, age: Int) = ("LEE", 20)

print("이름: \(person2.name) 나이: \(person2.age)")

위 처럼 튜플 내 타입마다 이름을 설정할 수 도 있습니다.

 

typealias PersonTuple = (name: String, age: Int, height: Double)

var person:PersonTuple = ("LEE", 20, 181.1)

print("이름: \(person.name), 나이: \(person.age), 키: \(person.height)")

튜플 또한 별칭을 지정할 수 있습니다.