목록분류 전체보기 (30)
sanichdaniel의 iOS 개발 블로그
Currying 여러 인자를 받는 함수를 하나의 인자만 받는 함수들의 시퀀스로 변환하는 것입니다. 변환된 함수는 인자 하나를 받고, 값 대신 함수를 리턴한다. 이 리턴되는 함수는 다음 인자를 입력으로 받는다. 예시 1 func add2(_ x: Int, _ y: Int) -> Int { return x + y } add2(1, 2) func add2Currying(_ x: Int) -> ((Int) -> Int) { return { y in return x + y } } add2Currying(1)(2) 예시 2 func curry(_ fn: @escaping (A, B) -> C) -> (A) -> (B) -> C { return { (a: A) in return { (b: B) in return fn..
swift에서 함수는 일급 시민이다라는 말은 여러번 들어보았지만, 정작 일급 시민 개념에 대해 완전히 모르는것 같아 공부해보았다. 일급 시민 (First-class Citizen) 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 1. 함수의 인자로 전달 2. 함수에 의해 리턴 3. 변수에 할당 가능 4. 비교 연산이 가능 일급 함수 (First-class Function) 함수를 일급 시민으로 취급하는것 High Order Function 함수를 인자로 받거나, 함수를 리턴하는 함수 함수가 일급 시민인 언어에서, high order function이 가능하다는것이 보장된다. -> 함수를 인자로 받거나 리턴할수 있기에 high order function이 가능하다고 함수가 일급..
목차 Strategy Command Adapter Proxy Facade Template Method Decorator Factory Abstract Factory Mediator Compostie Strategy 동작(Strategy)을 클래스로 캡슐화하고 런타임에 갈아끼울수 있도록 하는것 동작이 사용하는 코드로부터 캡슐화 되어있다. 새로운 동작을 쉽게 추가할수 있다. Context는 새로 추가되는 동작에 대해 몰라도 된다. 아래 예시에서 Restaurant는 Cook 구현체에 대해 닫혀있다. import Foundation protocol Cook { func cookFood() } class KoreanCook: Cook { func cookFood() { print("김치찌개") } } class..
요약 Identifiable, ObjectIdentifier, Equality, Identity 개념들을 묶어서 정리해보았다 Identifiable A class of types whose instances hold the value of an entity with stable identity. public protocol Identifiable { /// A type representing the stable identity of the entity associated with `self`. associatedtype ID : Hashable /// The stable identity of the entity associated with `self`. var id: Self.ID { get } } Ob..