Swift

[Swift] 클래스 vs 구조체,열거형

devharrry 2018. 5. 4. 00:45

# 클래스(Class)

 

전통적인 OOP 관점에서의 클래스입니다. 클래스는 단일상속이 가능하고 *참조 타입입니다

Apple 프레임워크의 대부분의 큰 뼈대는 모두 클래스로 구성되어 있습니다.

 

(참조 타입 - Reference Type : 데이터를 전달할 때 메모리 위치를 전달합니다.)

 

# 구조체(Struct)

 

C언어 등의 구조체보다 다양한 기능을 가지고 있습니다. 구조체는 상속이 불가능하고 *값 타입입니다.

Swift의 대부분의 큰 뼈대는 모두 구조체로 구성되어 있습니다.

 

(값 타입 - Value Type : 데이터를 전달할 때 값을 복사하여 전달합니다.)

 

# 열거형(Enum)

 

다른 언어의 열거형과는 많이 다른 존재입니다. 열거형은 상속이 불가능하고 값 타입입니다.

유사한 종류의 여러 값을 유의미한 이름으로 한 곳에 모아 정의합니다

) 요일, 상태값, 월 등

 

그렇다면 구조체를 언제 사용하면 좋을까요?

 

연관된 몇몇의 값들을 모아서 하나의 데이터타입으로 표현하고 싶을 때


다른 객체 또는 함수 등으로 전달될 때 참조가 아닌 복사를 원할 때


자신을 상속할 필요가 없거나, 다른 타입을 상속 받을 필요가 없는 경우


참고 : edwith - Swift입문 16.클래스 vs 구조체 / 열거형 챕터 


'Swift' 카테고리의 다른 글

[Swift] Property - didSet, willSet이란  (0) 2018.06.11
[Swift] 프로토콜(Protocol)이란  (0) 2018.05.04
[Swift] guard vs if  (3) 2018.04.27
[Swift] Inheritance- final 키워드  (0) 2018.04.25
[Swift] map, filter, reduce  (0) 2018.04.17