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 | 31 |
Tags
- 문법
- 협업
- CleanCode
- 부스트코스
- 의도
- interface
- 함수형패러다임
- 인터페이스
- SWIFT
- 의존성
- IOS
- DesignPattern
- 네이밍
- 디자인패턴
- 고차함수
- POP
- protocol
- 개발
- Swfit
- OOP
- iOS프로그래밍
- 아이폰프로그래밍
- 개발자
- fp
- 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