03. 기본(The Basic) - Swift가 제공하는 타입(Type)과 Type Safety

이경은·2023년 12월 22일
0
post-custom-banner

요약

  1. 데이터 타입(Data Type)과 콜렉션 타입(Collection Type)
    • Swift는 저장할 데이터의 종류에 따라 데이터의 타입을 구분하여 저장합니다.
    • 대표적으로 숫자에는 Int, Double, 문자에는 String, 논리자료에는 Bool 등의 타입을 사용합니다.
    • 단일 데이터뿐만 아니라 여러개의 값들을 묶어서 저장할 수 있는 콜렉션 타입(Collection Type)을 제공합니다.

  2. 옵셔널(Optional)과 nil
    • Swift는 '값이 없는' 상태를 nil이라고 하며, 각 데이터 타입에 대해 값이 없을 수 있는 상태를 처리하기 위해 옵셔널(Optional) 타입을 별도로 가지고 있습니다.

  3. Type Safety
    • Swift는 개발자에게 저장하는 데이터의 타입(Type)을 명확히하도록 요구하며, 이로 인해 발생할 수 있는 에러를 빠르게 찾고 수정할 수 있도록 만들어주는 특징을 가지고 있습니다.



데이터 타입(Data Type)과 콜렉션 타입(Collection Type)

Swift는 일반적인 종류의 데이터로 동작하고 기본 구문을 작성합니다.

표기타입자료형태
Int정수 타입64비트 정수형
Float실수 타입32비트 부동소수형
Double실수 타입64비트 부동소수형
Character문자 타입단일 유니코드 자료형
String문자열 타입복수 유니코드 자료형
Bool논리 자료 타입truefalse만을 값으로 가짐

Swift는 다른 언어들과 마찬가지로 여러 기본적인 데이터 타입을 제공합니다. 이번 포스팅에서는 당장 사용할 타입들에 대해서 간단히 알아보고, 공식문서 번역본에 게재된 순서대로 각 데이터타입들에 대해서도 업로드 할 예정입니다.

// swift가 정수와 부동소수점을 다루기 위해 제공하는 Int, Double
let num1: Int = 10
let num2: Double = 3.14

// 참, 거짓을 다루기 위한 데이터 타입 Bool
let a: Bool = true
let b: Bool = false

// 문자열을 다루는 데이터 타입 String
let greeting = "안녕하세요."

Swift는 또한 Array, Set, Dictionary 총 3가지의 기본적인 콜렉션타입을 제공합니다.

// Int타입의 값들을 가진 배열(Array) someInts
let someInts: [Int] = [1, 2, 3, 4, 5]

// String타입의 값들을 가진 집합(Set)
let favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]

// key와 value를 동시에 가지는 딕셔너리(Dictionary)
let airports: [String : String] = ["YYZ": "Toronro Pearson", "DUB": "Dublin"]

Swift는 변수를 식별 가능한 이름으로 값을 저장하고 참조합니다. Swift는 또한 값을 변경할 수 없는 변수를 광범위하게 사용합니다. 이러한 변수를 상수(Constants, let)라고 하며, 값을 변경할 필요가 없을 때 코드를 더 안전하고 명확하게 만들기 위해 Swift에서 사용됩니다.

위의 익숙한 타입들 외에도 Swift는 튜플(Tuple)이라는 고급 타입을 지원합니다. 튜플은 값을 그룹화하여 생성하거나 전달할 수 있습니다. 튜플을 사용하여 함수의 여러값을 단일 복합 값으로 반환할 수 있습니다.




Optional과 nil

Swift는 또한 값이 존재하지 않는 상태를 처리하기 위해 옵셔널(Optional)타입을 가집니다. 옵셔널은 "값을 가지며, 그 값은 x와 같다" 또는 "값을 가지지 않는다"를 구분하여 명시합니다.

let String1: String? = "Hello, "	// String1은 값을 가지고 있으며, 그 값은 "Hello, "이다.
let String2: Optional<String> = "World!"	// String2는 값을 가지고 있으며, 그 값은 "World!"이다.



Type Safety

Swift는 타입에 엄격한 언어입니다(=Type Safety). 타입 세이프란 언어가 값에 대해 타입을 명확히하도록 도와주고 코드에서 동작하도록 합니다. 타입 세이프티는 만약 String을 요구하는 코드에서 실수로 Int로 전달하는 것을 막아줍니다. 마찬가지로 옵셔널이 아닌 String을 요구하는 코드에 옵셔널String을 전달하는 것을 막아줍니다. 타입세이프티는 개발 단계에서 가능한 빠르게 에러를 찾고 고칠 수 있도록 도와줍니다.

post-custom-banner

0개의 댓글