Swift

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

MiaCoder 2023. 6. 16. 21:25

애플이 제공하고, 가장 많이 이용하는  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)")

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