구조체 vs 클래스, 어떤 기준으로 선택할까?🤔

Lily·2021년 10월 20일
0

사용자 정의 타입을 정의할 때 구조체와 클래스 중 어떤 타입으로 정의 해야할지 고민이 되었다.

두 타입의 공통점과 차이점을 알아보고, 어떤 기준으로 선택해야하는지 정리해보았다.


구조체와 클래스 비교하기


📑참고 공식문서
Comparing Structures and Classes
Choosing Between Structures and Classes


🍣 구조체와 클래스 공통점

  • 값을 저장하기위한 프로퍼티를 정의함
  • 기능성을 제공하기 위한 메서드 정의함
  • subscript문법으로 값에 접근할 수 있음 (?)
  • Initializer로 초기상태 셋업 가능
  • extension이 가능함
  • 프로토콜을 따를 수 있음

🍣 "클래스만" 가지고 있는 능력

  • 값을 전달할 때 메모리 주소를 전달 (참조 타입)
  • 단일 상속 가능
  • Type casting 가능
  • Deinitializer 정의 가능
  • 한 개 이상의 Reference count 가능 (?)

general guide에 따르면 스위프트는 구조체를 선호하고, 클래스는 꼭 필요할 때 사용하라고 한다.

🙋🏻‍♀️ 구조체를 기본으로 선택하되,
클래스만 가지고 있는 능력을 써야할 때 클래스를 선택하자!

profile
i🍎S 개발을 합니다

0개의 댓글