본문 바로가기

iOS 앱 개발자 프로젝트/Swift 문법 정복하기

[Swift] Struct vs. Class

2024년 3월 28일 목요일

두 개념을 다시 한 번 정리해 봅니다.

 

 

한 문장으로 정리한 차이점은,

Class     참조타입이고 ARC로 메모리 관리를 한다. 
Struct    값 타입이다.

 

[ 공통점 ] 

  1. 함수적 기능을 하는 메서드를 선언할 수 있다.
  2. 값을 저장할 property를 선언할 수 있다. 
  3. protocol을 채택하여 기능을 설정할 수 있다.
  4. extension을 사용하여 기능을 확장할 수 있다.
  5. 생성자를 사용해 초기 상태를 설정할 수 있다.
  6. 내부 값에 .을 사용하여 접근할 수 있다.

 

[ Class ] 

  1. 참조 타입이다.  :
  2. ARC로 메모리를 관리한다. :
  3. 상속이 가능하다.
  4. 동일한 클래스 인스턴스를 여러 변수에 할당한 뒤 값을 변경하면 모든 변수에 영향을 준다.
  5. 타입 캐스팅을 통해 런타임에서 클래스 인스턴스 타입을 확인할 수 있다. 
  6. deinit을 사용하여 클래스 인스턴스의 메모리 할당을 해제할 수 있다.

 

[ Struct ] 

  1. 값 타입이다.  :
  2. 구조체 변수를 새로운 변수에 할당할 때마다 새로운 구조체가 할당된다. ( = 같은 구조체의 여러 개의 변수에 할당한 뒤 값을 변경시키더라도 다른 변수에 영향을 주지 않는다.(값 자체를 복사) )

 

reference

 

[Swift] Class와 Struct의 차이점?

안녕하세요 Pingu입니다.🐧 오늘은 iOS 개발에 쓰이는 Swift 언어에서 Class, Struct의 차이점이라는 주제를 가지고 글을 써보려고 합니다. iOS 개발자로 면접을 준비하다 보면 Class, Struct의 차이점이라

icksw.tistory.com