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
- RxCocoa
- UICollectionView
- UITextView
- HIG
- collectionview
- Clean Code
- 클린 코드
- SWIFT
- tableView
- Human interface guide
- clean architecture
- ios
- 리펙토링
- uiscrollview
- Xcode
- combine
- swift documentation
- swiftUI
- rxswift
- uitableview
- Protocol
- ribs
- 리팩토링
- 스위프트
- MVVM
- Refactoring
- 애니메이션
- map
- 리펙터링
- Observable
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] protocol에 사용되는 any 키워드 개념 (existential any, existential type) 본문
iOS 응용 (swift)
[iOS - swift] protocol에 사용되는 any 키워드 개념 (existential any, existential type)
jake-kim 2024. 1. 30. 01:43Existential Type 개념
- * Existential: "존재하는"
- Existential Type는 protocol를 명시적으로 타입을 지정하는 경우, 그 protocol을 Existential Type이라고 명칭
- ex) 아래 SomeProtocol을 Existential Type이라고 명칭
let instance: SomeProtocol = SomeClass()
Existential Any 개념
- Existential Type을 사용할 때, dynamic dispatch가 일어나고 적지않은 메모리 할당 등 비용이 비싼 단점이 존재하여 프로그래머에게 Existential Type을 사용할땐 주의하게끔 any 키워드를 붙여서 사용하라는 의미
(비용관련 내용)
(any 키워드를 붙여야 하는 이유 - 실수 방지)
- 사용방법
- Existential Type 사용 시 앞에 any 붙이기
- (현재는 안써도 되지만 swift6.0부터 컴파일 에러 발생 예정)
let instance: any SomeProtocol = SomeClass()
protocol SomeProtocol {}
class SomeClass: SomeProtocol {}
* 참고
'iOS 응용 (swift)' 카테고리의 다른 글
[iOS - swift] 3. 추상화 - 프로토콜에 제네릭스 사용하는 추상화 이해하기 (1) | 2024.02.01 |
---|---|
[iOS - swift] 2. 추상화 - 제네릭스로 추상화하기 (#GenericTableView) (2) | 2024.01.31 |
[iOS - swift] 1. 추상화 - 개념과 목적 (1) | 2024.01.29 |
[iOS - swift] 추상화하기 목차 (0) | 2024.01.28 |
[iOS - swift] device 분기 방법, 시뮬레이터 분기문 (targetEnvironment, os, arch, swift) (0) | 2024.01.27 |
Comments