Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- DesignPattern
- 네이밍
- 의존성
- SWIFT
- iOS프로그래밍
- protocol
- 아이폰프로그래밍
- 의도
- IOS
- 고차함수
- 객체지향프로그래밍
- 문법
- 이름
- fp
- 개발자
- OOP
- 클린소프트웨어
- 클린코드
- CleanCode
- 함수형패러다임
- 인터페이스
- 부스트코스
- 개발
- POP
- interface
- 협업
- 디자인패턴
- Swfit
- 함수형프로그래밍
- Solid
Archives
- Today
- Total
밤에 쓴 코드
Swift) Extension - 익스텐션 본문
Swift) Extension 익스텐션
사용하는 이유
- 기존 타입의 기능확장
- 확장된 코드 영역은 비교적
side effect
에서 자유로움 - 기능별로 단위를 묶어서 표현하기 쉬움
- 확장된 코드 영역은 비교적
- 기존 타입의 기능확장
특징
- *열거형, 구조체, 클래스, 프로토콜 확장 가능 *
- 재정의는 불가능
- 연산프로퍼티 추가가능
- 상속과는 달리 수평적 기능 추가의 느낌이 있음
사용 예시
기존의 기본클래스(구조체)의 기능적 확장
extension Int{ func changeToString ->(String){ return "\(self)" } }
Default Implement - 프로토콜 기본구현
protocol runable{ func run() } extension runable{ func run(){ print("뒤뚱뒤뚱") } }
TypeAlias 와 함께 사용
typealias Age = Int extension Age{ mutating func aging(){ self += 1 } }
'Swift' 카테고리의 다른 글
Swift) Closure - 클로저 (0) | 2019.05.08 |
---|---|
Swift) POP - Protocol Oriented Programming (1) | 2019.04.25 |
Swift) 옵셔널 - Optional (0) | 2019.04.18 |
Swift) 프로토콜 - Protocol (0) | 2019.04.11 |
Swift) 구조체/변수/상수 (0) | 2019.04.08 |
Comments