연산 프로퍼티란?
보통의 프로퍼티는 값을 저장하는 역할을 한다.
연산 프로퍼티는특정한 연산
을 통해 값을 리턴해준다class Point { var tempX : Int = 1 var x: Int { get { return tempX } set(newValue) { tempX = newValue * 2 } } } var p: Point = Point() p.x = 12
자세한건 나중에 따로 연산 프로퍼티에 대해 알아보면 좋을듯 하다
class 와 sturct/enum 을 묶어서 생각해볼 수 있다.
값 타입과 참조 타입은 데이터가 메모리에 저장되는 방식에 따라 다르다.
- 값 타입은 값이 복사되어 새로운 인스턴스가 생성되고, 그 인스턴스가 stack 메모리 영역에 저장된다.
- 참조 타입은 주소를 복사하여 이미 존재하는 인스턴스의 위치를 가리킨다.
참조하는 값이 존재하는 위치를 stack 메모리 영역에, 참조되는 값은 heap 메모리 영역에 저장이 되어있다.
참조가 아닌 복사를 원할 때
자신을 상속할 필요가 없거나, 상속받을 필요가 없을 때