Swift Study #4 후기
Classes and Structures
- 클래스와 구조체의 공통점
- 프로퍼티, 메소드, 서브스크립트, 초기화, 확장, 프로토콜
- 클래스만의 특징
- 상속, 형변환, 소멸, 참조
- 구조체와 열거형은 값 타입으로 할당되거나 전달될 때 복사
- 클래스는 참조 타입으로 복사되지 않고 레퍼런스가 사용
- 같은 인스턴스를 참조하는지 확인하기 위해 식별연산자(===)를 사용
Properties
- 속성은 특정 클래스, 구조체, 혹은 열거형과 값들을 연결
- 저장속성은 인스턴스에 저장, 계산속성은 값을 계산하여 사용, 타입 속성은 타입 자체에 연결
- var 키워드로 선언되면 변수저장속성, let 키워드로 선언되면 상수저장속성
- 게으른(lazy) 저장속성은 그 초기값이 최초로 사용되기 전까지는 계산되지 않음
- 계산속성은 실제로 값을 저장하지 않고, 다른 속성이나 값들을 간접적으로 접근하여 값을 조회하거나 수정할 수 있는 getter와 setter를 선택적으로 제공
- 읽기전용 계산속성은 getter만 있고 setter가 없는 계산속성
- 속성 감시자는 속성값 변경을 감시하고 대응, willSet은 값이 저장되기 직전에 호출 / didSet은 새 값이 저장된 직후에 즉시 호출
- 타입 속성은 해당 타입 자체에 속한 속성, 특정 타입의 모든 인스턴스에 영향을 미치는 값을 정의하는 데 유용
Methods
- 메소드(method)는 타입에 의존적인 함수(function)
- 인스턴스 메소드는 특정 클래스, 구조체, 혹은 열거형에 속하는 함수
- 인스턴스 메소드는 다른 인스턴스 메소드와 해당 타입의 속성에 대한 접근이 가능, 해당 타입이 속한 특정한 인스턴스에 의해서만 호출 가능
- 메소드 내 첫 번째 파라미터 이름은 기본적으로 지역 파라미터 이름으로 지정, 두 번째 파라미터부터는 지역 파라미터 이름과 외부 파라미터 이름 둘 다 지정
- self 프로퍼티는 인스턴스 메소드 내에서 현재 인스턴스를 참조하는데 사용
- 값 타입의 프로퍼티를 바꾸기 위해서는 인스턴스 메소드를 선언할 때, mutating 키워드를 사용
- 타입 메소드는 타입 자체에서 호출하는 메소드
- 타입 메소드를 선언할 때, 클래스는 class 키워드를 구조체와 열거형은 static 키워드를 사용
&
너무 늦어버린 후기… 발표자료는 정리해서 업데이트 할게요!