구조체와 클래스

Hisop·2022년 10월 14일
0

Swift

목록 보기
2/7

구조체와 클래스는 어떤 차이가 있으며 어떻게 선택해야 할까?


요약

  • 타입 차이가 존재한다
  • 구조체는 상속이 불가능하다
  • 클래스는 소멸자를 지원한다

타입의 차이

구조체 인스턴스의 타입은 값 타입(value type)
클래스 인스턴스의 타입은 참조 타입(reference type)이다.

구조체 인스턴스를 복사하거나 전달할 때 복사본이 생성되면서 별개의 데이터를 가지게 된다.
값을 수정해도 복사본이 수정되므로 원본엔 영향을 끼치지 않는다.

클래스 인스턴스는 복사하거나 전달할 때 참조체가 만들어지거나 전달된다. 값을 수정하면 원본에도 영향을 끼친다.

구조체와 클래스는 언제 써야할까?

기본적으로 구조체를 사용합니다.
Objective-C 상호 운용성이 필요한 경우 클래스를 사용하십시오.
모델링하는 데이터의 ID를 제어해야 하는 경우 클래스를 사용하세요.
프로토콜과 함께 구조체를 사용하여 구현을 공유함으로써 동작을 채택합니다.

공식문서에 따르면 위의 기준으로 선택하면 된다.
나는 참조 타입과 값 타입을 기준으로 선택하는것이 맞다고 생각한다.


참고자료

Swift Docs - Class And Structures
Swift Docs - Choosing Between Structrues and Classes

Swift 구조체와 클래스 차이

profile
42seoul - C, C++ / YagomAcademy - Swift

0개의 댓글