Structure 값 타입이며 , 구조체 변수를 새로운 변수에 할당할 때 마다 새로운 구조체가 할당되는 특징을 가지고 있다. 즉, 같은 구조체를 여러개의 변수에 할당한 뒤 값을 변경시키더라도 다른 변수에 영향을 주지 않는다. Class 참조 타입이며, ARC로 메모리를 관리한다. 같은 클래스 인스턴스를 여러 개의 변수에 할당한 뒤 값을 변경시키면, 할당한 모든 변수에 영향을 준다. 상속이 가능하며, 타입 캐스팅을 통해 클래스의 인스턴스 타입을 확인할 수 있다. deinit 을 사용하여 클래스 인스턴스의 메모리 할당을 해제 할 수 있다. Structure 와 Class 의 공통점 값을 저장할 프로퍼티를 선언할 수 있습니다. 함수적 기능을 하는 메서드를 선언할 수 있습니다. 내부 값에 . 을 사용하여 접근할..
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..