017_Property

2022. 7. 26. 19:00SeSAC/수업정리

목차

1. 프로퍼티 종류

2. Stored Property(저장 프로퍼티)

  ▶ 프로퍼티

  ▶ 지연 저장 프로퍼티(Lazy stored property)

3. Computed Property(연산 프로퍼티)
   ▶ 접근자(getter)
   ▶ 설정자(setter)
   ▶ 연산프로퍼티를 사용하는 이유

 

*References


1. 프로퍼티 종류

-. Type Property : 인스턴스를 생성하지 않고 클래스나 구조체 자체에 값을 저장하는 것을 말한다.  객체 자체에 관련된 값을 다루어야 할 때 사용한다.

-. Instance Property : 인스턴스를 생성했을 때 사용가능한 프로퍼티를 말한다.

-. Stored Property : 값을 저장하기 위해 선언되는 상수/변수를 말한다. 클래스와 구조체에서만 사용할 수 있다.

-. Computed Property : 실제 값을 저장하는 프로퍼티가 아니라, 특정 상태에 따른 값을 연산 하는 프로퍼티다.

2. Stored Property(저장 프로퍼티)

▶ 저장 프로퍼티

-. 값을 저장하기 위해 선언되는 상수/변수를 말한다. 클래스와 구조체에서만 사용할 수 있다.

 

지연 저장 프로퍼티(Lazy stored property)
-. 값의 호출이 있어야만 값을 초기화한다.(호출 되기 전에는 값을 초기화 하지 않는다.)

-. 변수(var)로만 선언 할 수 있다. 필요할때 값을 할당하기 때문에 상수로 선언이 불가능하다.
-. 클래스, 구조체에만 사용할 수 있다.

-. 복잡한 클래스나 구조체를 구현할때 사용하면 불필요한 공간 낭비를 줄일 수 있다. 

 

3. Computed Property(연산 프로퍼티)

 접근자(getter)

-. 저장프로퍼티의 값을 연산해서 return하는 역할을 한다.(return 구문 생략 가능)

 

설정자(setter)

-. 연산프로퍼티의 파라미터로 받은 값을 연산하고 저장프로퍼티에 그 값을 저장하는 역할을 한다. (파라미터 꼭 필요함)

-. 파라미터 기본 인자명은 newValue이고 newValue 키워드로 파라미터를 사용한다면 newValue 키워드를 생략할 수 있다.

 

연산프로퍼티를 사용하는 이유

-. 인스턴스 외부에서 메서드를 통해 인스턴스 내부로 접근하려면 메서드를 두개 구현해야한다. 따라서 연산 프로퍼티를 쓰는 편이 가독성이 좋고, 직관적이다.

 

위의 연산 프로퍼티와 똑같은 역할을 하지만 연산 프로퍼티를 사용하지 않는다면 메서드 2개를 구현해줘야 한다.

*References

-. sesac 교육자료

-. 저장프로퍼티 & 연산프로퍼티

https://babbab2.tistory.com/119?category=828998 

https://minosaekki.tistory.com/4

https://alohalimi.tistory.com/entry/SWIFT-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EC%97%B0%EC%82%B0-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%E2%98%85%E2%98%85%E2%98%85

https://infinitt.tistory.com/406