- struct
- 상속 불가
- stack영역에 저장, 일정크기 이상되면 heap에 저장된다
- 속도 빠르고 멀티 쓰레드 환경에서 안전하다
- 값 타입이다
- swift 뼈대 대부분 구조체로 구성되어 있다
struct a {
var b : Int = 100
var c : String = "c"
}
- class
- 단일상속 가능
- heap영역에 저장, 상대적으로 느리다
- 참조 타입이다
- swift 에서는 객체라는 용어대신 인스턴스라는 용어사용
- iOS framework 대부분 클래스로 구성되어있다
- deinitializer 존재( 클래스의 인스턴스가 메모리에서 해제되는 시점에 호출되는 함수)
- struct, class 공통점
- extension사용가능(구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가가능)
- protocol사용가능(특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타요구사항등의 청사진)
- initalizer 정의가능
- enum
- 상속 불가
- 연관된 값을의 집합으로 공통된 타입으로 정의한다
- RawValue 를 통해 원시값 지정가능
- protocol 사용가능
enum Animal : Int {
case cat = 0
case tiger
case lion
}
댓글