데이터 타입 고급
컴파일 시 확인하는 것을 “타입 확인”이라고 한다.
앞서 말했던 타입 추론의 경우, 알아서 컴파일러가 데이터의 타입을 예측한다.
알아서 “Charming”과 같은 String 타입을 입력하면 문자열로, 100과 같은 숫자열을 입력하면 Int타입으로 예측한다.
- 타입 별칭
위 처럼 먼저 구성을 해두면,
위 처럼 정수형 타입을 사용할 수 있습니다.
- 튜플
스위프트 튜플은 파이썬 튜플과 유사하다.
위 처럼, 데이터 타입을 선택한 후, 값을 기입해주어 사용할 수 있다.
- 컬렉션형
튜플 이외에도, 컬렉션 타입으로는 배열, 딕셔너리, 세트 타입등이 있다.
- 배열
let으로 선언시, 변경이 되지 않고, var로 선언시 변경이 가능하다.
배열은 아래처럼 사용이 가능하다.
비슷하게로는
위 처럼도 가능하다.
위 처럼 빈 배열을 만들 수 있고,
배열의 타입을 정확히 명시해줬다면
도 가능하다!
인덱스를 통해 배열에 접근이 가능하며, 파이썬처럼 인덱스는 0부터 시작한다!
index(:of) 메서드를 사용하여 해당 요소의 인덱스를 알아낼 수 있다.
맨 뒤에 요소를 추가하고 싶다면, append(_:) 메서드를 사용하면 된다.
를 하면 각각 요소들이 추가된다.
- 딕셔너리
파이썬과 마찬가지로 키와 값으로 매칭이되는 타입이다.
- 세트
세트는 같은 타입의 데이터를 순서 없이 하나의 묶음으로 저장하는 형태의 컬레션 타입이다.
우측의 Set
새로운 요소 추가시 insert(:), 삭제시 remove(:) 메서드를 사용합니다!
또한 파이썬처럼 sorted() 메서드를 사용하여 정렬된 배열을 반환할 수 있습니다.
randomElement(), shuffled()를 사용하여 순서를 섞을 수도 있습니다.
- 열거형
연관된 항목들을 묶어서 표현할 수 있는 타입입니다.
기본 열거형은 enum으로 사용이 가능합니다.
각 항목들을 생성할 수 있습니다.
순환 열거형 사용시 indirect를 사용하면 됩니다.