6. Lazy 저장 속성
• lazy 저장속성은 이 속성이 처음으로 사용되어 질 때까지 초기화
되지 않음.
• 저장 속성 앞에 lazy를 써줌으로써 lazy저장속성을 표시.
• 반드시 var 키워드로 선언된 변수에만 적용가능.
• 상수는 항상 초기 값을 가져야 하기 때문에 상수 속성으로는 선언
할 수 없다.
• 복잡한 클래스의 불필요한 인스턴스 생성을 피하기 위해, lazy 저
장 속성의 사용이 유용함.
8. 연산 속성(Computed Properties)
• 저장속성, 클래스, 구조체, 열거형은 연산 속성을 정의할 수 있음
• 연산속성은 실제로 값을 저장하지는 않고, 다른 속성이나 값들
을 간접적으로 접근하여 값을 조회하거나 수정할 수 있는 getter
와 선택적인 setter를 제공.
11. 메소드(Method)
• 기존의 객체지향언어 메소드의 형태와 사용법이 매우 유사.
• dot( . )을 이용해 접근.
• 특정 클래스, 구조체, 혹은 열거형의 인스턴스에 속하는 함수
• 인스턴스 속성에 접근하고 수정하는 방법이나, 인스턴스의
용도에 관련된 기능을 지원.
15. Shorthand 외부 파라미터 명
• 함수 파라미터에 외부파라미터를 사용하고, 그 외부파라미터
명이 함수 내부에서도 그대로 사용되길 원한다면, 함수 파라
미터명 앞에 해쉬심볼(#)을 써주면 된다.
• 즉, 외부파라미터명과 내부파라미터명을 따로 사용할 필요없
이 하나의 이름으로 외부 내부에서 동시에 사용할 수 있도록
해주는 기능.
17. • 모든 인스턴스 타입은 인스턴스 자체와 동일한 self라는
명시적 프로퍼티를 가지고 있음.
• 이 명시적 self 프로퍼티는 자신이 속한 인스턴스 내에서
현재 인스턴스를 참조 하는데 사용.
• 인스턴스 메소드 파라미터와 인스턴스 속성의 프로퍼티
가 동일한 이름을 가졌을 때 사용해서 구분.
• self는 다른 객체지향 언어에서 this와 같은 의미. 즉, 자
기자신을 가리킴.
The Self Property
19. • 구조체와 열거형은 값타입이라서 인스턴스 생성후에는
메소드를 통해서 해당 인스턴스의 속성을 변경할 수 없는
데 이를 가능하게 하는 방법.
• mutating이라는 키워드를 인스턴스 메소드 앞에 선언하
게 되면 이 메소드를 통해서 속성 변경 가능.
Mutating
20. Mutating
함수 이름만으로 첫번째 인수값의 용도가 명확해지기 때문에
외부 파라미터에 대해서 정의 할 필요가 없다.
하지만 두 번째 인수는 메소드가 호출되었을때, 그 용도를 명확
히 하기 위해서 외부파라미터 이름을 규정함.