본문 바로가기
iOS/Swift 문법 복습

Struct와 Class, Enum의 차이를 설명하시오.

by 황민우 2022. 6. 25.

Class

- 객체라는 용어 대신 인스턴스 사용

- (인스턴스/타입) 메서드 || 프로퍼티
- 래퍼런스 형태로 공유 가능
단일 상속만 가능
- 참조 타입 (데이터 전달 시, 값이 아닌 메모리의 위치를 전달)

 

 



Struct

- Swift의 대부분의 자료형 타입은 구조체로 정의된다.
- (인스턴스/타입) 메서드 || 프로퍼티
- 항상 새로운 변수의 값의 복사가 일어나, 멀티 스레드 환경에서 에러 발생확률이 적다.
상속 불가
- 값 타입 (데이터 전달 시, 값을 복사해서 전달)



Enum

- 유사한 종류의 여러 값을 유의미한 이름으로 모아놓은 타입
- (인스턴스/타입) 메서드 || 연산 프로퍼티 지정
- case들이 그 자체로 값
상속 불가
- 값 타입 (데이터 전달 시, 값을 복사해서 전달)

 

 


 

구조체와 클래스를 사용하는 상황 구별

- 4가지 경우 중 하나 이상 해당될 경우 구조체 사용, 이외에는 클래스 사용.

 

1, 서로 연관된 몇 개의 기본 데이터 타입들을 캡슐화하여 묶는 것이 목적일 때

2, 캡슐화된 데이터에 상속이 필요하지 않을 때

3, 캡슐화된 데이터를 전달하거나 할당하는 과정에서 참조 방식보다는 값이 복사되는 것이 합리적일 때

4, 캡슐화된 원본 데이터를 보존해야 할 때


내용 출처

https://roniruny.tistory.com/136

 

[Swift] 클래스(Class) /구조체(Struct) /열거형(Enum) 정리 + 차이점

< 관련 링크 - 한글판 > 📚 목차 1️⃣  열거형 Enum 2️⃣  구조체 Struct 3️⃣  클래스 Class  4️⃣  차이점 Swift는 객체지향 프로그래밍 언어입니다. 그렇기 때문에 우리는 클래스, 구조체, 열거

roniruny.tistory.com

https://velog.io/@hayeon/struct%EC%99%80-class%EC%99%80-enum%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%A5%BC-%EC%84%A4%EB%AA%85%ED%95%98%EC%8B%9C%EC%98%A4

 

struct와 class와 enum의 차이를 설명하시오.

Class swift에서는 객체라는 용어 대신에 '인스턴스'라는 용어 사용 단일 상속만 (인스턴스/타입) 메서드 or 프로퍼티 참조타입 데이터를 전달할 때 값의 메모리 위치를 전달 주소를 복사하여 이미

velog.io

 

'iOS > Swift 문법 복습' 카테고리의 다른 글

(인스턴스, 스태틱, 클래스) 메서드  (0) 2022.06.30
프로토콜 [Protocol]  (0) 2022.06.29
옵셔널 [Optional]  (0) 2022.06.28
프로퍼티 (Properties)  (0) 2022.06.27

댓글