Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Functions 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며함수는 특정 task를 수행하는 자기완결성(self-contained)을 가진 코드들의 집합이다. Swift에서의 함수 문법은 C 스타일의 함수부터 Objective-C 스타일의 메서드까지 모두 표현할 수 있을만큼 유연하다. 함수 파라미터에 디폴트 값을 설정할 수도 있고, 변수를 in-out 파라미터로 넘겨서 함수 실행 후 해당 변수의 값이 변하게 만들 수도 있다.Swift의 모든 함수는 타입을 가진다. 이 타입이라는 것은 함수의 파라미터 타입과 리턴 타입으로 구성되어 있으며, Swift에서 쓰이는 다른 타입들과 마찬가지로 다룰 수 있다. 따라서 함수..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Control Flow 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며Swift는 C 스타일 언어와 유사한 스타일의 Control Flow Statements를 제공한다. task를 여러 번 실행하기 위해 while 문을, 조건에 따라 다른 코드를 수행할 수 있도록 if, guard, switch 문을, 수행 도중 특정 코드로 건너뛸 수 있도록 break, continue 문을 제공한다.Swift는 for-in loop를 제공한다. 이것은 array, dictionary, range, string 등을 순회할 때 유용하게 사용할 수 있다. 뒤에서 살펴보겠다.Swift의 Switch 문은fall through (br..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Collection Types 중 Dictionary 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며Dictionary는 같은 타입의 Key들과 같은 타입의 Value들이 서로 1:1로 연결되어 있는 Collection 타입이다. Key는 그 각각이 유니크하며 Value를 위한 identifier역할을 한다. 저장 순서는 따지지 않는다. 실제 세계에서의 사전처럼 사용할 Collection Type이 필요할 때 Dictionary를 사용할 수 있다. Swift’s Dictionary type is bridged to Foundation’s NSDictionary class. Dictionary Type Shortha..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Collection Types 중 Set 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며Set은 같은 타입의 값을, 중복되지 않게, 순서없이 저장하는 Collection Type.저장순서를 알 필요없고, Collection 안의 값이 모두 유니크해야 할 때 Set을 사용하면 적절하다. Swift’s Set type is bridged to Foundation’s NSSet class. Hash Values for Set TypesSet에 저장될 Type은 반드시 hashable 해야한다.hashable 한 Type이란? : 그 Type이 hash value를 알려줄 수 있다hash value 란? : a = b 일..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Collection Types 중 Array 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며Swift에서는 값을 저장하기 위한 세 가지 기본적인 콜렉션 타입 Array, Set, Dictionary를 제공한다.Array : 넣은 순서대로 저장되는 콜렉션Set : 값이 중복되지 않는 순서없는 콜렉션Dictionary : key-value 관계를 가지는 순서없는 콜렉션이 콜렉션 타입들 역시 다른 상수 변수와 마찬가지로 type 체크에 엄격하다. 즉 한번 저장할 값의 type을 정하면 다른 type의 값은 저장할 수 없다. (Any 타입으로 지정시에는 다른 타입의 값들을 저장할 수 있다. Any 타입에 대해서는 나중에 ..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Strings and Characters 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며String은 문자열을, Character는 문자를 저장할 수 있는 타입이다.스위프트의 String은 단순한 문법으로 다룰 수 있다. 특히 String 두 개를 연결할 때 + 연산자만 사용하면 되는데, 이 부분은 Objective-C에 비하면 편해졌다.String에 특정 상수/변수 등을 포함해야 할 때는 Objective-C와 다르게 String 리터럴 안에 \(변수이름)을 넣어야 한다. String Interpolation 부분에서 자세히 살펴보겠다.유니코드 호환이 잘 된다. 모든 String은 encoding-independ..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Basic Operators 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며스위프트는 표준 C 연산자를 대부분 지원한다.스위프트의 연산자에는 코딩 오류를 미리 잡아주기 위한 몇 가지 특별한 점들이 있다. 다음은 그 예시 몇 가지이다.할당 연산자(=)는 어떤 값도 return 하지 않는다. ( if 조건문 안에서 = 대신 == 를 사용하는 것을 방지하기 위해)산술 연산자(+, -, *, /, % 등)는 오버플로우를 미리 감지하여 그런 연산을 허용하지 않는다. (연산결과가 저장될 변수에 오버플로우된 값이 할당됨을 방지하기 위해)또한 스위프트에는 범위 연산자 a..
Swift 3.1 가이드에 대응하는 정리글을 작성하였습니다!!!Access Control 정리 최신버전 > http://wlaxhrl.tistory.com/61 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Access Control 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 문서 본문 중 생략된 부분이 많습니다. 들어가며Access control 을 이용하면 외부 소스파일/모듈에 있는 코드에서 자신의 코드에 접근하는 것을 제한할 수 있다. 자신의 코드 구현부를 숨기거나, 외부에서 사용할 인터페이스를 확실하게 지정하고 싶을 때 유용하다.Access level 은 클래스, 구조체, ENUM 등의 타입에 각각 구체적으로 지정할 수 있으며, 타입 안에 속한 프로퍼티, 메서..
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Generics 정리 최신버전 > http://wlaxhrl.tistory.com/60 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Generics 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며제네릭을 이용하면 특정 타입에 종속되지 않는 / 유연하고 / 재사용성 높고 / 명확한 의도를 가진 함수를 작성할 수 있다.제네릭은 Swift의 powerful feature대부분의 Swift 기본 라이브러리는 제네릭 코드를 내장한다사실 Array와 Dictionary 타입도 제네릭 콜렉션Array에는 Int도, String도, 커스텀 타입도, 그리고 이것들을 전부 포함할 수 있는 Any 타입도 넣을 수 있..
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Protocols 정리 최신버전 > http://wlaxhrl.tistory.com/59 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Protocols 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 프로토콜 3편입니다. 이번 시간에는 프로토콜 합성부터 시작합니다. 1,2편을 아직 안 읽으셨다면 먼저 읽어보세요. Protocols 1편 링크 > http://wlaxhrl.tistory.com/28Protocols 2편 링크 > http://wlaxhrl.tistory.com/29 프로토콜 합성Protocol Composition프로토콜 합성은 한번에 여러 프로토콜을 따르는 타입이 필요할 때 유용하게 활용할..