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
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 |
댓글