6. Protocol Types Protocol 은 First-class Citizen 으로 독립적인 하나의 형식입니다. 변수나 상수를 선언할 때 자료형으로 사용하거나 파라미터의 자료형으로 사용할 수 있습니다. 그리고 리턴형으로 사용하는 것도 가능합니다. 간단한 예제를 살펴보겠습니다. protocol Resettable { func reset() } class Size: Resettable { var width = 0.0 var height = 0.0 func reset() { width = 0.0 height = 0.0 } } let s = Size() // Protocol 형식으로 저장하면 Protocol 에 선언되어 있는 멤버만 사용할 수 있습니다. let resettable: Resettable ..
1. Protocol Syntax Protocol 을 간단하게 정리하면 형식에서 공통으로 제공하는 멤버 목록을 말합니다. Protocol 에는 형식에서 구현해야 하는 멤버가 선언되어 있으며 실제 구현은 Protocol 에 포함되지 않습니다. 대신 class 나 structure 같은 타입들이 실제 Protocol 의 멤버들을 구현하게 됩니다. 이것을 "프로토콜을 따른다"고 표현하거나 "프로토콜을 채용한다"고 표현합니다. 프로토콜을 채용한 형식은 반드시 프로토콜에 선언되어 있는 필수 멤버를 모두 구현해야 합니다. 그래서 이런 멤버들을 요구사항이라고 부르기도 합니다. 프로토콜을 선언하는 문법은 다음과 같습니다. protocol ProtocolName { propertyRequirements methodReq..
1. Extension - Syntax Extension 은 확장이라는 의미를 가지고 있으며 형식을 확장하는 데 사용됩니다. 형식을 확장한다는 것은 속성, 메소드, 생성자와 같은 멤버들을 형식에 추가하는 것입니다. Extension 으로 확장할 수 있는 대상은 Class, Structure, Enumeration, Protocol 입니다. Extension 은 형식 선언에 새로운 멤버를 추가하는 것은 아닙니다. 새로운 멤버는 별도의 코드 조각으로 구현하고 형식과 연관 시켜서 기존 멤버와 함께 사용하는 것입니다. 형식 선언이 포함되어 있는 코드를 수정할 수 없는 경우에도 문제없이 확장할 수 있습니다. Int 나 String 같은 기본 자료형은 실제로 구조체로 구현되어 있습니다. Apple 이 제공하는 라이..
1. Initializers 생성자에 대해 알아보겠습니다. 열거형, 구조체, 클래스는 모두 설계도입니다. 설계도를 기반으로 생성한 것을 인스턴스라고 합니다. 다른 언어에서는 객체에 한해 인스턴스라는 용어를 사용하지만 Swift 에서는 구분 없이 사용합니다. 새로운 인스턴스를 생성하는 것을 초기화라고 합니다. 인스턴스의 초기화를 담당하는 것이 바로 initializer 입니다. 초기화는 모든 속성을 기본 값으로 초기화해서 인스턴스를 기본 상태로 만드는 것이 목적입니다. 인스턴스가 정상적으로 초기화 되었다는 것은 initializer 의 실행이 완료되었을 때, 모든 속성이 기본 값을 가지고 있다는 뜻입니다. 만약 기본 값이 없는 속성이 존재한다면 초기화에 실패하고 인스턴스는 생성되지 않습니다. 기본적인 초기..
1. Inheritance 상속에 대해 알아보겠습니다. 상속 관계에 있는 클래스들은 상속 계층을 구성합니다. 클래스 계층에서 가장 위에 있는 클래스를 Base Class 또는 Root Class 라고 합니다. 바로 아래 계층의 클래스는 Base Class 를 상속합니다. 상속 관계에서 위에 있는 클래스를 Super Class 라고 하거나 Parent Class 라고 합니다. 그리고 아래쪽에 있는 클래스는 Sub Class 또는 Child Class 라고 합니다. Objective-C 에서는 모든 클래스가 NSObject 라는 클래스를 상속해야 하지만 Swift 에서는 이런 제약이 없습니다. 여러 Sub Class 가 하나의 Super Class 를 상속하는 것은 문제가 없지만, 하나의 Sub Class ..
- Total
- Today
- Yesterday
- EC2
- 수학
- 조합
- ionic
- array
- Baekjoon
- java
- SWIFT
- 프로그래머스
- CodeCommit
- sort
- Combination
- Dynamic Programming
- BFS
- map
- 소수
- AWS
- ECR
- DFS
- CodeDeploy
- cloudfront
- Algorithm
- spring
- string
- 에라토스테네스의 체
- 순열
- permutation
- programmers
- search
- CodePipeline
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |