전체 글
-
210215 TIL: POP-4.Generic, lhs/rhs, declaration orderTIL 2021. 2. 15. 23:40
POP https://welly-log.tistory.com/11?category=920557 Swift4: Protocol Oriented Programming - 4.제네릭 4장 제네릭 제네릭은 중복을 피하고, 유연하고 재사용 가능한 코드를 작성할 수 있게 해준다. 스위프트의 Array나 Set 같은 경우 모두 제너릭 구조체로 구현되어 있다. enum Optional { case None case Some(T) welly-log.tistory.com lhs와 rhs에 대한 흥미로운 글 나에겐 너무나 멋진사람들 : 네이버 블로그 lhs 와 rhs 연산자 함수를 만들 경우 함수의 매개변수를 적어줄때 변수 이름으로 lhs(Left Hand Side) 와 rhs(Righ... blog.naver.com lh..
-
Swift4: Protocol Oriented Programming - 4.제네릭POP 2021. 2. 15. 23:36
4장 제네릭 제네릭은 중복을 피하고, 유연하고 재사용 가능한 코드를 작성할 수 있게 해준다. 스위프트의 Array나 Set 같은 경우 모두 제너릭 구조체로 구현되어 있다. enum Optional { case None case Some(T) } 제네릭의 대표적 예시는 옵셔널이다. 옵셔널에 nil을 대입하면 None 값을 갖고, 어떠한 값을 대입하면 T 타입의 Some 값을 갖게 된다. 제네릭 함수 제네릭 함수를 이용하여 타입 마다 같은 기능을 하는 함수를 계속해서 만들 필요 없이, 중복을 최소화하여 구현할 수 있다. func swapGenerics(a: inout T, b: inout T) { let tmp = a a = b b = tmp } 위에서 T는 플레이스홀더로 스위프트에게 타입을 런타임 단계에서..
-
Swift4: Protocol Oriented Programming - 3.확장POP 2021. 2. 15. 01:18
3장 확장 확장 확장은 이미 존재하는 타입의 소스 코드가 없더라도 기능을 추가할 수 있게 해준다. 확장으로 추가할 수 있는 것들 연산 프로퍼티 인스턴스/타입 메소드 Convenience Initializer 서브스크립트 저장 프로퍼티는 추가할 수 없음! extension String { func getFirstChar() -> Character? { guard count > 0 else { return nil } return self[startIndex] } subscript(r: CountableClosedRange) -> String { get { let start = index(self.startIndex, offsetBy: r.lowerBound) let end = index(self.startI..
-
210214 TIL: POP-3: extension, subscript, overload/overrideTIL 2021. 2. 14. 23:27
POP https://welly-log.tistory.com/10?category=920557 Swift4: Protocol Oriented Programming - 3.확장 3장 확장 확장 확장은 이미 존재하는 타입의 소스 코드가 없더라도 기능을 추가할 수 있게 해준다. 확장으로 추가할 수 있는 것들 연산 프로퍼티 인스턴스/타입 메소드 Convenience Initializer 서브스 welly-log.tistory.com Subscript 서브스크립트 (Subscripts) 서브스크립트 (Subscripts) jusung.gitbook.io 콜렉션, 리스트, 시퀀스 등 집합의 특정 멤버 요소에 간단하게 접근할 수 있는 문법. 하나의 타입에 여러 서브스크립트를 정의할 수 있고, 오버로드가 가능. 배열에..
-
Swift4: Protocol Oriented Programming - 2.타입 선택POP 2021. 2. 14. 03:19
2장 타입 선택 타입 Swift에서 타입은 이름 있는 타입과 복합 타입으로 나뉜다. 이름 있는 타입은 클래스, 구조체, 열거형, 프로토콜 등이 있으며, 원시 타입이라 불리는 스위프트 표준 데이터 타입들은 모두 이름 있는 타입이다. 복합 타입은 타입을 정의할 때 이름을 부여하지 않은 타입을 말하며, 함수 타입과 튜플 등이 있다. typealias 를 이용하여 복합 타입에 별칭을 붙여 호출할 수도 있다. 또한, 참조 타입과 값 타입으로도 타입을 나눌 수 있다. 참조 타입 인스턴스를 전달하는 것은 원본 인스턴스의 참조를 전달하는 것으로, 두 참조가 같은 인스턴스를 공유한다는 뜻이다. : 클래스 값 타입 인스턴스를 전달할 때에는 인스턴스의 새로운 복사본을 전달하며, 각 인스턴스가 유일한 사본의 의미를 가진다. ..
-
210213 TIL: POP-2: type, 함수/메소드TIL 2021. 2. 13. 23:38
POP https://welly-log.tistory.com/8 Swift4: Protocol Oriented Programming - 2.타입 선택 2장 타입 선택 타입 Swift에서 타입은 이름 있는 타입과 복합 타입으로 나뉜다. 이름 있는 타입은 클래스, 구조체, 열거형, 프로토콜 등이 있으며, 원시 타입이라 불리는 스위프트 표준 데이터 타 welly-log.tistory.com Swift4: Protocol Oriented Programming - 2장 타입 선택 내용 정리 함수 vs 메소드 함수(Function) VS 메소드(Method) 함수(Function) VS 메소드(Method) 안녕하세요 :) Zedd입니다. 갑자기 Swift에서 함수와 메소드의 명칭..? 언제 함수라고 불러야하고 메..
-
210212 TIL: POP, type, Xcode tipTIL 2021. 2. 12. 23:55
POP https://welly-log.tistory.com/5 Swift4: Protocol Oriented Programming - 1.프로토콜 시작 1장 프로토콜 시작 프로토콜(protocol) 프로토콜은 작업을 수행하기 위해 타입에서 필요로 하는 메소드, 프로퍼티 그리고 다른 요구사항을 정의하는 계약의 역할을 한다. 프로토콜 요구 사항 프로 welly-log.tistory.com Swift4: Protocol Oriented Programming - 1장 프로토콜 시작 내용 정리 타입 Swift에서 타입은 이름 있는 타입과 복합 타입으로 나뉜다. 이름 있는 타입은 클래스, 구조체, 열거형, 프로토콜 등이 있으며, 원시 타입이라 불리는 스위프트 표준 데이터 타입들은 모두 이름 있는 타입이다. 복합 ..
-
Swift4: Protocol Oriented Programming - 1.프로토콜 시작POP 2021. 2. 12. 23:51
1장 프로토콜 시작 프로토콜(protocol) 프로토콜은 작업을 수행하기 위해 타입에서 필요로 하는 메소드, 프로퍼티 그리고 다른 요구사항을 정의하는 계약의 역할을 한다. 프로토콜 요구 사항 프로토콜에서 프로퍼티를 정의할 때에는 항상 get과 set 키워드로 프로퍼티가 읽기 전용인지 읽기 쓰기 프로퍼티인지 명시해줘야만 한다. 선택 가능한 요구사항 프로토콜 앞에 @objc 키워드를 붙여 선택 가능한 메소드나 프로퍼티를 프로토콜에 포함할 수 있다. 단, class만 해당 프로토콜을 채택 가능 프로퍼티나 메소드 앞에는 @objc optional 키워드를 붙인다 프로토콜 컴포지션 프로토콜 컴포지션은 class에서 단일 상속만 가능한 swift에서 객체의 요구사항을 구체적이고 중복없이 구현하도록 해준다. 깊이감 ..