데이터 타입 안심
Swift는 데이터 타입을 안심하고 사용할 수 있는 Type-safe 언어이다. 타입을 안심하고 사용할 수 있다는 말인데, 예를 들어 int 타입변수에 String 타입을 대입하면 컴파일 오류가 발생한다.타입 별칭 (typealias)
사용자가 임의로 데이터타입에 별칭을 부여할 수 있다. (기존에 Objective C 에서는 Block 값을 지정해서 쓰고 있었다.) 기존에 사용하던 데이터타입과 임의로 지정한 데이터타입 모두 사용가능하다.
typealias MyInt = Int
typealias YourInt = Int
typealias MyDouble = Double
let age:MyInt = 31
var yourAge:YourInt = 20
yourAge = age // 같은 Int 타입이기 때문에 가능함.
let record:MyDouble = 89.5 // 다른 타입도 별칭 사용가능함.
| cs |
튜플 (Tuple)
튜플은 타입의 이름이 따로 지정되어 있지 않은 사용자가 마음대로 만드는 데이터 묶음 타입니다.구조체의 방식과 유사하다.
// ------- 1. 튜플 ---------//
// 3가지 Type을 갖는 튜플
var person:(String, Int, Double) = ("KimJW", 31, 170.8)
// 인덱스를 통한 데이터 접근 가능
print("이름 : \(person.0), 나이 : \(person.1), 키 : \(person.2)")
// 결과) 이름 : KimJW, 나이 : 31, 키 : 170.8
// 인덱스를 통한 값 할당 가능
person.0 = "TestName"
person.1 = 100
person.2 = 190.22
print("이름 : \(person.0), 나이 : \(person.1), 키 : \(person.2)")
// 결과) 이름 : TestName, 나이 : 100, 키 : 190.22
| cs |
각 요소의 접근과 사용에 대해서는 손쉽게 사용할 수는 있으나, 어떤의미로 사용하고 있는지 유추하기 어렵다.
그래서 튜플의 요소마다 이름을 붙여 줄 수 있다.
// ------- 2. 튜플 ---------//
// 3가지 Type을 갖는 튜플 (접근요소의 이름이 추가됨)
var personType:(name:String, age:Int, height:Double) = ("KimJW", 31, 170.8)
// 요소를 통한 데이터 접근 가능
print("이름 : \(personType.name), 나이 : \(personType.age), 키 : \(personType.height)")
// 결과) 이름 : KimJW, 나이 : 31, 키 : 170.8
| cs |
튜플타입을 사용하다 보면 요소가 길어 질 수 있는데, 매번 사용할때 긴내용을 붙여 넣기 보다는 타입 별칭을 통해 정리해서 사용하는 것도 방법인것 같다.
// ------- 3. 튜플 ---------//
// 추가적으로 튜플의 별칭 지정해서 사용하기
typealias PersonTuple = (name:String, age:Int, height:Double)
let kimjw:PersonTuple = ("KimJW", 31, 170.8)
let parksj:PersonTuple = ("ParkSJ", 28, 161.3)
print("이름 : \(kimjw.name), 나이 : \(kimjw.age), 키 : \(kimjw.height)")
print("이름 : \(parksj.name), 나이 : \(parksj.age), 키 : \(parksj.height)")
// 결과) 이름 : KimJW, 나이 : 31, 키 : 170.8
// 결과) 이름 : ParkSJ, 나이 : 28, 키 : 161.3
| cs |
댓글
댓글 쓰기