iOS/Swift

[Swift] 구조체(struct)와 클래스(class)

year.number 2022. 8. 2. 20:44

구조체와 클래스의 사용 목적

- 데이터를 용도에 맞게 묶어서 표현하고자 할 때

- 새로운 사용자 정의 데이터 타입을 만들어 주는 것

 

구조체 클래스
값 타입 참조 타입
인스턴스를 let으로 선언 시 내부 프로퍼티 값 변경X 인스턴스를 let으로 선언 시 내부 프로퍼티 값 변경O
상속 불가 상속 가능
타입 캐스팅 불가 타입 캐스팅 가능
디이니셜라이저X 디이니셜라이저O (메모리 소멸)
기본적으로 저장 프로퍼티를 매개변수로 갖는 이니셜라이저O 프로퍼티 기본값을 지정하지 않으면 이니셜라이저 따로 정의 /
사용자 정의 이니셜라이저 호출

 

구조체 예시

// 구조체 정의
struct BasicInformation {
    var name: String
    var age: Int
}

// 구조체 인스턴스 생성 및 사용
var yeonsuInfo: BasicInformation = BasicInformation(name: "yeonsu", age: 24)
yeonsuInfo.age = 100
yeonsuInfo.name = "Bonny"

 

클래스 예시

// 클래스 정의
class Diet {
    var height: Float = 0.0
    var weight: Float = 0.0
}

// 클래스 인스턴스 생성 및 사용
var yeonsu: Diet = Diet()
yeonsu.height = 166.8