Opaque Types 불투명 타입 Opaque 반환 타입을 가진 함수, 메서드는 자신의 반환타입 정보를 외부에 숨길 수 있습니다. 일반적인 반환타입 처럼 명확한 반환 타입을 외부에 제공하는 대신 말이지요. // OpaqueType 사용 예시, 반환타입은 Shape 프로토콜을 채택한 어떠한 타입이던 될 수 있습니다. // -> 즉, 말 그대로 불투명한 타입(Opaque Type)입니다. func flip(_ shape: T) -> some Shape { return FlippedShape(shape: shape) } 반환타입을 숨기는 것은 모듈로 호출되는 코드와 모듈 사이에서 유용하게 사용되어질 수 있습니다.그 이유는 반환타입에 의존하는 타입은 private으로 유지될 수도 있기 때문입니다. 반환할때 일..
안녕하세요! developer, 멍구입니다. 🤗 오늘은 Swift언어의 switch문에서 사용할 수 있는 fallthrough문의 사용법에 대해서 알아보도록 하겠습니다! FallThrough Statement FallThrough문 사용하기 fallthrough 예약어는 fallthrough 키워드를 명시해서 사용할 수 있으며, swift언어의 switch문 내에서만 사용할 수 있습니다. 보통은 switch-case 문에서 특정 한개의 case 문 혹은, 묶음 case 문을 거치면 그 외 관련없은 case문은 무시하고 해당 switch문을 빠져나가는게 일반적입니다. 하지만, fallthrough를 사용하면 하나의 case문이 거친 뒤, 그 다음 case문의 내용을 이어서 실행하는 동작이 가능합니다. 프로..
Closures 클로저 클로저(Closures)는 코드 상에서 전달되어 사용될 수 있는 독립적인 블록입니다. Swift의 함수들은 전부 클로져이며 이름이 존재하냐, 없냐의 차이가 있을 뿐입니다. 또한 클로져는 할당받기, 인자전달, 반환 등이 모두 가능한 1급객체입니다. Swift의 클로져는 C언어, Objective-C언어 등의 타 프로그래밍 언어 상의 람다와 유사합니다. 클로져는 정의되어 있는 상수나 변수들에 대해 참조 및 저장해서 사용할 수 있습니다. 이를 "클로저가 상수, 변수들을 닫아둔다" 라고도 합니다. Swift에서는 클로저 캡쳐링 간의 메모리 관리를 방법을 제공합니다. NOTE 클로져 캡쳐링(Closure Capturing)과 관련해서 익숙하지 않더라도 걱정할 필요는 없습니다. 더 자세한 내..
Deinitialization 소멸자 소멸자(deinitializer)는 클래스 인스턴스가 메모리 해제될 때 즉시 호출되는 함수입니다. 스위프트의 소멸자는 deinit 키워드를 사용해서 사용할 수 있습니다. 그 작성방식은 생성자인 init와 유사합니다. 스위프트 소멸자는 구조체가 아닌 클래스 타입에서만 작성 가능합니다. How Deinitialization Works 소멸자의 작동방식 Swift는 특정 클래스 인스턴스가 더이상 필요없을 때 해당 인스턴스를 자동적으로 메모리 해제합니다. 메모리 공간을 확보하기 위해서 말이죠. Swift는 이러한 메모리 관리를 Automatic Reference Counting(관련 포스팅 링크), 줄여서 ARC라는 방식으로 수행합니다. 전형적으로, 특정 클래스 인스턴스를 ..
- Total
- Today
- Yesterday
- uikit
- swift 기초
- Collection
- SwiftUI
- 개발자문서
- swift
- swift언어
- 부스트코스
- 스위프트
- 프로토콜
- Swift 알고리즘
- 백준swift
- swift string
- 알고리즘
- createML
- 알고리즘문제
- swift 문자열
- swift알고리즘
- 컬렉션
- swift문제
- Protocol
- ios
- 김프매매
- 프로그래머스
- 자연어처리
- swift reduce
- CoreML
- publisher
- 프로그래머스swift
- 백준알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |