데이터 타입 안심

애플이 처음 스위프트를 발표할 때 강조했던 스위프트의 특징 중 하나가 안정성 이다. 서로 다른 타입끼리의 데이터 교환은 꼭 타입케스팅(Type-Casting)을 거쳐야 한다. 스위프트에서 값 타입의 데이터 교환은 엄밀히 말하면 타입캐스팅이 아닌 새로운 인스턴스를 생성하여 할당하는 것이다. 이에 대한 설명은 타입캐스팅에서 확인할 수 있다.


데이터 타입 안심이란

스위프트는 데이터 타입을 안심하고 사용할 수 있는 Type-Safe언어 이다. 타입을 안심하고 사용할 수 있다는 말은 그만큼 실수를 줄일 수 있다는 의미이며 컴파일 오류를 통해 스위프트는 서로 다른 타입의 값을 할당하는 실수를 줄일 수 있다. 이렇게 스위프트가 컴파일 시 타입을 확인하는 것을 타입확인이라고 한다.


타입 추론

스위프트에서는 변수나 상수를 선언할 때 특정 타입을 명시하지 않아도 컴파일러가 할당된 값을 기준으로 변수나 상수의 타입을 결정한다.

//타일 추론을 통해 name은 String 타입으로 선언된다.
var name = "Cat"

//타입 안심 : 컴파일 오류
name = 100


타입 별칭

스위프트에서 기본으로 제공하는 데이터 타입이든, 사용자가 임이로 만든 데이터 타입이든, 이미 존재하는 데이터 타입에 임의로 다른 이름(별칭)을 부여할 수 있다. 그런 다음 기본 타입 이름과 추가한 별칭을 모두 사용할 수 있다.

//Typealias for String
typealias Name = String

func insertName(name: Name) {}
insertName(name: "Bob Lee")


//Typealias for Custom Class
class Employee {}

typealias MyEmployees = [Employee]
func listEmployees(enterEmployees: MyEmployees) {}


//Typealias for Tuple
typealias GridPoint = (Int, Int)

func enterPoint(grid: GridPoint) {
 print("You've entered, \(grid.0) and \(grid.1)")
}

enterPoint(grid: (4, 2))