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 이 제공하는 라이..
- Total
- Today
- Yesterday
- BFS
- SWIFT
- 소수
- AWS
- DFS
- string
- Baekjoon
- search
- CodePipeline
- 순열
- ECR
- Combination
- map
- 수학
- java
- spring
- permutation
- 에라토스테네스의 체
- 조합
- EC2
- CodeCommit
- Algorithm
- sort
- array
- programmers
- 프로그래머스
- cloudfront
- CodeDeploy
- Dynamic Programming
- ionic
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
