[swift] 스위프트 구조체와 클래스

스위프트는 구조체(struct)와 클래스(class) 두 가지 타입을 제공합니다. 이들은 속성과 메서드를 가질 수 있으며, 데이터 모델링과 코드 재사용을 위해 사용됩니다.

구조체

구조체는 값 타입(value type)으로, 변수나 상수에 할당되거나 전달될 때 값을 복사하여 전달합니다. 구조체는 용량이 작고 간단한 데이터 값을 캡슐화하고자 할 때 적합합니다. 구조체는 다음과 같이 선언됩니다.

struct Resolution {
    var width = 0
    var height = 0
}

클래스

클래스는 참조 타입(reference type)으로, 인스턴스가 전달될 때에는 값이 복사되지 않고 참조만 전달됩니다. 클래스는 상속을 지원하고, 런타임 시간에 타입 캐스팅과 인스턴스 메모리 관리를 할 수 있는 등의 추가 기능을 제공합니다. 클래스는 다음과 같이 선언됩니다.

class VideoMode {
    var resolution = Resolution()
    var interlaced = false
    var frameRate = 0.0
    var name: String?
}

구조체와 클래스의 비교

구조체는 값 타입으로 적합하며 상속이 필요 없거나 간단한 데이터 캡슐화가 필요한 경우 사용될 수 있습니다. 클래스는 참조 타입으로 작동하며, 각 인스턴스가 고유한 주소값을 갖습니다.

결론

스위프트에서는 구조체와 클래스를 사용하여 데이터를 캡슐화하고 코드를 구조화할 수 있습니다. 적합한 타입을 선택하여 데이터 모델링 및 코드 구현을 할 수 있도록 구조체와 클래스를 활용해보세요.

더 자세한 정보는 스위프트 공식 문서를 참고하세요.

[swift]