[swift] 클래스와 구조체
클래스와 구조체는 Swift에서 데이터를 모델링하고 기능을 정의하는 데 사용되는 중요한 구성 요소입니다. 두 가지 모두 속성과 메서드를 가질 수 있지만 몇 가지 중요한 차이점이 있습니다.
클래스
클래스는 참조 타입으로, 인스턴스를 생성하고 참조를 통해 전달됩니다. 클래스의 인스턴스는 하나 이상의 참조가 가리킬 수 있으며, 참조가 한 인스턴스를 공유할 수 있습니다.
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
위의 예제에서 Person
클래스는 name
과 age
속성을 가지며, 초기화 메서드를 갖고 있습니다.
구조체
구조체는 값 타입으로, 인스턴스를 생성하고 값으로 전달됩니다. 구조체의 인스턴스는 항상 값을 복사하여 전달하며, 서로 다른 메모리 공간에 위치합니다.
struct Size {
var width: Int
var height: Int
}
위의 예제에서 Size
구조체는 width
와 height
속성을 가지고 있습니다.
클래스와 구조체의 선택
클래스와 구조체를 사용할 때, 다음과 같은 고려 사항이 있습니다:
- 상속을 해야 하는 경우에는 클래스를 사용합니다.
- 인스턴스를 복사할 때 값 타입이 필요한 경우에는 구조체를 사용합니다.
- 참조 타입이 필요한 경우에 클래스를 사용합니다.
클래스와 구조체는 Swift에서 유연하고 강력한 데이터 모델링 도구입니다. 적절한 상황에 적합하게 사용함으로써 안정적이고 효율적인 코드를 작성할 수 있습니다.