TIL

[240307] 배열/sort, sorted/Character to Int/Foundation

2024. 3. 7. 12:10

1. 빈 배열 생성시 타입 추론으로는 생성 불가능하다. 타입 Annotation 혹은 생성자로 빈 배열 생성 가능

// 타입 추론 (X)
var array1 = []

// 타입 Annotation
var array2: [Int] = []     

// 생성자로 생성
var array3 = [Int]()     
var array4 = Array<Int>()

Swift는 타입에 민감하므로 선언과 동시에 타입을 명시하거나 추론할 수 있도록 해주기!

해당 타입으로 된 값만 배열에 저장할 수 있고, 여러 타입을 저장하고 싶다면 타입을 Any로 선언

var anyArray: [Any] = [7, "목요일", 10.32]

 

 

2. sort? sorted?

배열을 정렬할 때 sort/sorted 함수가 헷갈렸는데,

Swift 함수 이름에 -ing, -ed가 붙으면 원본을 그대로 두고 작업이 완료된 새로운 데이터를 리턴하는 것이라고 한다. 즉 sort는 원본 자체를 정렬시키는 것, sorted는 원본은 건드리지 않고 정렬된 새로운 배열을 리턴하는 것이다.

 

 

3. Character에서 바로 Int로 형변환이 안되니 Character -> String -> Int 순으로 해주자

 

 

4. import Foundation? UIKit?

Foundation은 배열, 문자열 등 기본적인 데이터 타입, 파일 처리, 네트워킹, 날짜와 시간, 메모리 관리 등의 기능을 제공하는 프레임워크이다. Objective-C와 Swift로 작성되어 있으며, NSString 등 Objective-C 언어와 관련된 타입, 기능을 제공한다. Swift 언어 자체는 기본 타입, 컬렉션, 조건문, 반복문 등 기본적인 기능만을 제공하기 때문에 실질적으로 앱을 만들기 위해서는 필수적으로 Foundation 프레임워크가 사용된다.

 

다음으로 UIKit은 Foundation의 기능에 더하여 터치, 모션, 애니메이션 등 그래픽과 사용자 인터페이스를 구조 및 관리하는 프레임 워크이다. 즉 UIKit은 User Interface를 포함하는 앱을 개발할 때 사용되며, UIKit이 Foundation을 포함하기 때문에 둘을 함께 import 할 필요는 없다.