따라서 class앞에 final키워드를 붙이면 다른 클래스가 이 클래스를 상속할 수 없고 메서드 디스패치가 정적으로 결정되서 좀 더 빨라질 수 있다
class와 struct의 차이점 중에 하나로 상속 가능 여부가 있는데, 클래스를 상속 못하는 상태로 바꾸면서도 클래스를 사용해야 하는 경우가 있을까?
클래스는 여전히 참조타입이다
상속은 불가하지만 인스턴스는 여전히 참조한다.
메모리 관리
여전히 참조 카운팅을 쓴다. struct는 스택에 할당되고, 참조 카운팅이 필요하지 않다.
가변성
final class의 프로퍼티는 var로 선언하면 자유롭게 수정가능하지만 struct에서 프로퍼티를 수정하려면 mutating키워드가 필요함
값 타입(struct)이 유용한 경우
참조 타입(class)이 유용한 경우
.
.
ex)
불필요한 복사로 인한 성능 저하를 피하고 싶다면 class, 데이터 일관성과 안전성이 중요하다면 struct가 좋겠다