[swift] 클래스와 구조체

클래스와 구조체는 Swift에서 데이터를 모델링하고 기능을 정의하는 데 사용되는 중요한 구성 요소입니다. 두 가지 모두 속성과 메서드를 가질 수 있지만 몇 가지 중요한 차이점이 있습니다.

클래스

클래스는 참조 타입으로, 인스턴스를 생성하고 참조를 통해 전달됩니다. 클래스의 인스턴스는 하나 이상의 참조가 가리킬 수 있으며, 참조가 한 인스턴스를 공유할 수 있습니다.

class Person {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

위의 예제에서 Person 클래스는 nameage 속성을 가지며, 초기화 메서드를 갖고 있습니다.

구조체

구조체는 값 타입으로, 인스턴스를 생성하고 값으로 전달됩니다. 구조체의 인스턴스는 항상 값을 복사하여 전달하며, 서로 다른 메모리 공간에 위치합니다.

struct Size {
    var width: Int
    var height: Int
}

위의 예제에서 Size 구조체는 widthheight 속성을 가지고 있습니다.

클래스와 구조체의 선택

클래스와 구조체를 사용할 때, 다음과 같은 고려 사항이 있습니다:

클래스와 구조체는 Swift에서 유연하고 강력한 데이터 모델링 도구입니다. 적절한 상황에 적합하게 사용함으로써 안정적이고 효율적인 코드를 작성할 수 있습니다.