Protocol Associated Type Declaration 프로토콜에 associatedType 선언하기 프로토콜(Protocol)은 associatedType 키워드를 사용해서 관련 타입(associated types)를 선언합니다. associatedtype은 프로토콜의 정의 일부로서 사용되는 별명타입을 제공합니다. 관련타입(associatedtype)은 제네릭 매개변수 절에 있는 타입 매개변수와 유사합니다. 하지만, associatedtype은 정의되어 있는 프로토콜의 Self와 관련이 있다는 특징이 있습니다. 앞서 말한 Self는 프로토콜을 채택하고 준수하는 실질적인 대상 타입을 참조합니다. 이에 대한 더 자세한 내용이 궁금하다면, Associated Types를 참고하세요. associa..
Type Alias Declaration 타입 별명 선언 타입 별명 선언(type alias declaration)은 존재하는 타입에 대한 별칭을 당신의 프로그램에 알려줍니다. 타입별명(Typealias)은 typealias 키워드를 사용해서 선언됩니다. 그 예시는 아래와 같습니다. 위의 코드를 보시면 Pair, Typle이라는 각 2, 3개의 Int 타입을 갖는 별칭이 만들어 졌습니다. 맨 앞에는 typealias를 붙이고, Int 2개 3개로 이루어진 튜플타입에 각각 Pair, Tuple이라는 별침을 만들어 준 상황이 됩니다. 이로서 해당 별칭을 타입으로 지정해서 그에 맞는 값을 할당해줄 수 있게 되었습니다. 이렇게 특정 타입에 대한 별칭(alias)이 지어진 뒤, 해당 별명은 프로그램 내에 언제든 ..
Generic Functions 제네릭의 기능 제네릭(Generic) 기능은 어떠한 타입에서도 작동될 수 있습니다. 아래의 코드는 swapTwoValues(_:_:) 라는 다양한 타입을 수용할 수 있는 메서드입니다. 위의 swapTwoValues(_:_:) 메서드는 어떠한 타입이던 동일한 타입이기만 되는 두개의 인자를 받아서 값을 swap할 수 있습니다. 다양한 타입을 스왑하기 위해 다수의 메서드를 작성할 필요가 없게 되는 것입니다. 기존에 Int타입으로만 한정해서 받은 메서드, swapTwoIntValues(_:_:)메서드와 비교해서 몸체 내부의 구현 코드는 별다른 차이가 없습니다. 이제 두개의 메서드를 비교해 보도록 하겠습니다. 제네릭(Generic)을 사용한 메서드인 swapTwoValues(_:_..
Generics 제네릭 제네릭(Generic)은 스위프트 표준 라이브러리에서 제공하고 있는 기능 중 하나입니다. 제네릭 코드는 융통성있는, 재사용가능한 기능 및 타입들을 작성할 수 있게 해줍니다. 또한, 제네릭은 다른 어떠한 타입, 개발자가 정의한 요구사항에 의존적인 타입들과 함께 작동할 수 있습니다. 또한 제네릭을 사용하면 중복을 방지하며, 의미를 깔끔하고, 추상화된 방식으로 표현할 수 있습니다. 제네릭은 Swift 언어의 매우 강력한 기능 중 하나라고 할 수 있습니다. 또한, 대부분의 스위프트 표준 라이브러리는 제네릭(Geenic) 코드로 구성되어 있습니다. 그렇기에 사실, 많은 개발자 들은 언어 가이드(Language Guide)를 통해서 지금까지 제네릭을 사용해왔고 해오고 있을 것입니다. 이를 알..
- Total
- Today
- Yesterday
- swift reduce
- 백준알고리즘
- 개발자문서
- swift
- 부스트코스
- SwiftUI
- 프로그래머스
- 김프매매
- 알고리즘문제
- 프로그래머스swift
- 컬렉션
- swift string
- 자연어처리
- Swift 알고리즘
- Collection
- swift문제
- Protocol
- publisher
- 스위프트
- swift 문자열
- createML
- swift알고리즘
- 백준swift
- ios
- 알고리즘
- CoreML
- swift언어
- 프로토콜
- swift 기초
- uikit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |