property 학습하기 (3) [ Type Property ]
·
프로그래밍언어/swift
이번에는 타입 프로퍼티의 역할을 학습해보자. Type Property (타입 프로퍼티)모든 타입이 공통적인 값을 정의하는 역할을 한다. 특징1) 클래스, 구조체, 열거형에서 사용된다 2) 저장 타입 프로퍼티와 연산 타입 프로퍼티가 존재하며 저장 타입 프로퍼티의 경우 항상 초기화가 되어 있어야 한다 3) static을 이용해 선언하며, 자동으로 lazy로 작동한다 종류 staticclass저장 프로퍼티 사용 가능OX연산 프로퍼티로 사용 가능OX오버라이딩 가능 XO예시 코드class Human { static var typeStoredProperty1: String = "HELLO" // ❌ 에러발생 class var typeStoredProperty2: String = "H..
property 학습하기 (2) [ computed Property ]
·
프로그래밍언어/swift
이번에는 연산 프로퍼티의 역할을 학습해보자 Computed Property (연산 프로퍼티)저장 공간을 따로 갖고 있지않고 저장 프로퍼티의 값을 읽어 연산을 실행하거나프로퍼티로 전달 받은 값을 다른 프로퍼티에 저장하는 역할을 한다. 특징1) 항상 var로 선언되야한다. 2) getter 와 setter가 존재한다. 3) getter는 필수지만, setter는 필수가 아니다. 4) setter를 명시하지 않으면 get-only가 된다. 종류 인스턴스 연산 프로퍼티타입 연산 프로퍼티사용 프로퍼티 종류인스턴스 저장 프로퍼티타입 저장 프로퍼티lzay 동작 여부XO  예시 코드class Human { var name: String = "BOOST CAMP" // 인스턴스 저장 프로퍼티 static v..
property 학습하기 (1) [ Stored Property ]
·
프로그래밍언어/swift
swift에는 정말 여러개의 property들이 존재한다.이번 포스팅부터는 swift의 여러 property들의 종류와 특징을 정리하고 코드를 통해 학습한다. 프로퍼티란?Swift에서 프로퍼티(Properties)는 클래스, 구조체, 열거형과 같은 객체의 데이터를 저장하는 변수 또는 상수이다. Stored Property (저장 프로퍼티)값을 저장하는 프로퍼티 종류 인스턴스 저장 프로퍼티타입 저장 프로퍼티지연 저장 프로퍼티역할클래스와 구조체에서만 사용할 수 있고, 값을 저장하기 위해 선언되는 상수/변수타입 자체에 속하는 저장 프로퍼티프로퍼티가 호출되는순간에 초기화 되는 저장 프로퍼티lazy 동작 여부XOOlet(상수) 가능 여부OOX  예시 코드class Human { var name: String = ..
protocol 학습하기 (4) [ any, some ]
·
프로그래밍언어/swift
저번 포스팅에서 우리는 associatedtype을 통해 프로토콜안에서 범용 타입을 편하게 사용하는 방법을 학습했다. 이번 학습은 associatedtype을 사용할 때 발생하는 문제점과 해결방안을 알아보자. 문제점associatedtype이 정의된 protocol은 리턴 또는 변수 타입으로 사용될 수 없는 불편함이 있다. protocol SomeProtocol { associatedtype T : Equatable // 제약 조건 도 줄 수 있음}protocol SomeProtocol2 {}var prop: SomeProtocol // ❌ associatedtype가 정의되서 변수 타입으로 사용 불가func someFunc() -> SomeProtocol {} // ❌ associatedtype..
protocol 학습하기 (3) [ associatedtype ]
·
프로그래밍언어/swift
저번 포스팅에서 프로토콜의 generic, 합성, 채택 체크등 조금 더 확장된 개념을 학습했다.이번에는 저번 학습 주제 중 generic을 프로토콜에서 편하게 사용할 수 있는 associatedtype에 대해 학습해보자등장 배경프로토콜에서 generic 사용할 때 번거로움이 있다.왼쪽 사진과 같이 프로토콜 자체에 제네릭을 선언할 수 없고 만약 제네릭을 사용하고 싶으면  오른쪽 사진과 같이 타입이더라도  함수 하나하나 새로 명시를 해줘야한다. 역할프로토콜에 사용하는 범용 타입의 역할을 한다. 특징1) associatedtype 역시 제네릭과 마찬가지로 제약 조건을 줄 수 있다.    여기서 제약조건이란 프로토콜 채택과 클래스 상속 등을 의미한디. 2) 채택 할 때 typealias를 이용하여 명확한 타입을..
protocol 학습하기 (2) [ generic, 합성, 채택 체크 ]
·
프로그래밍언어/swift
프로토콜에 제네릭 및 제약조건 적용하기제네릭 (범용 타입)은 런타임 시 타입을 결정하게하여 함수 또는 변수에 상황에 맞는 타입을 사용할 수 있게하는 기능이다. 제네릭 역시 프로토콜에 적용 할 수 있으며, 프로토콜 타입을  재네릭으로 사용할 수 있다. 1) 프로토콜에 제네릭 사용하기 기본 제네릭 패턴 또는 where과 조합해서 쓸 수 있다.protocol SomeProtocol { func f1(param: T) // 단순 제네릭 이용 func f2(param: T) where T: Equatable // 제네릭 + where 이용 } 2) 제네릭에 프로토콜 타입으로 사용하기프로토콜 역시 제네릭 타입으로 사용할 수 있다.protocol SomeProtocol { ..