enum 이란 열거형으로써 서로 연관된 특성을 갖는 형태끼리 집합을 구성할 수 있다. 코드를 간결하고 가독성 있게 작성할 수 있다. 또한, String형식은 heap에 저장되지만, enum은 값의 형태로 Stack 으로 성능면에서 향상된다. enum Asia { case korea case japan case china } 위 와 같이 각 나라별로 손 쉽게 집합 형식으로 묶어줄 수 있다. enum Asia: String { case korea = "대한민국" case japan = "일본" case china = "중국" } var korea = Asia.korea.rawValue print(korea) // "대한민국"enum 은 이런식으로 rawValue 를 사용하여 값을 표현 할 수도 있다.
Closure ? 사용자 코드 안에서 { } 으로 구분 되어 있는 코드의 블럭이며, 일급 객체의 역할을 할 수 있다. 일급 객체는 전달인자, 변수/상수, 함수의 반환 값 등 여러방면에서 사용할 수 있다. 함수는 클로저의 한 형태로 이름이 있는 클로저를 함수라고 한다. Ex) let reverseNames = names.sorted(by: {(s1: String, s2: String) -> Bool in return s1 > s2}) sorted(by:) 의 경우는 이미 (String, String) -> Bool 타입의 인자가 들어오는 것이 정해져 있기 때문에 타입을 생략 할 수 있다. let reverseNames = names.sorted(by: {s1, s2 in return s1 > s2}) 또한..
Finding Substrings let str = "Hello, Swift" str.contains("Swift") // .contains("Swift") 는 str 안에 "Swift" 가 포함되어있는지 Bool 값으로 표현해준다. str.lowercased().contains("swift") // str 안에 String값을 모두 소문자로 변경한 후 "swift"가 있는지 확인하는 방법이다. -> true str.range(of: "swift", options: [.caseInsensitive]) let str2 = "Hello, Programming" let str3 = str2.lowercased() var common = str.commonPrefix(with: str2) common = str..
Format Specifier Format Specifier String(format: "%.5fKB", size) > 소숫점 5자리 수까지 표현 한 후 "KB"를 붙여 출력 한다 String(format: "Hello, %@", "Swift") String(format: "%d", 12) > 12를 출력한다. String(format: "%.3f", 12.34) > 소수점 3자리 수까지 , 즉 12.340 을 출력한다. String(format: "[%d]", 123) > 출력값 [123] String(format: "[%10d]", 123) > 출력값 앞쪽에 빈공간을 만든다. 출력값 [ 123] String(format: "[%-10d]", 123) > 출력값 뒷쪽에 빈공간을 만든다. 출력값 [123..
for 문 , where 조건 추가 for item in myArray where item % 2 == 0 { print("짝수: \(item)") }기존의 for 문에서 where 를 사용하여 조건을 추가할 수 있다. 위의 코드는 myArray 배열에서 item에 값을 저장할 때 짝수만 저장하도록 구성된 코드이다. where 사용법에 대해서 숙지하자 enum 하나의 값 안에 경우(type)을 나눠 저장할 수 있다. enum School { case elementary case middle case high } enum School { case elementary, middle, high } 이 두개의 식은 동일한 식이며 표현 방법이 다른 enum의 문장구조 let yourSchool = School.h..
Optionals Type non-optional Type 항상 값을 가지고 있어야 하는 타입으로 nil 사용할 수 없다 예시 let str: String = "Swift"optional Type 값이 없어도 되는 타입 즉 nil 을 사용할 수 있다. 예시 let optionalStr: String? = nilUnwrapping Swift 에서는 optional 값이 있을 수도 있고 없을 수도 있다. Unwrapping은 optional 값에서 실제 값에 접근하는 과정을 말한다. Force Unwrapping optional 값 뒤에 ! 를 붙여 강제로 optional을 해제하는 방법 이는 optional 값이 확실하게 nil이 아닐 경우에만 사용해야한다. 예시 let optionalValue: Int?..