struct
- instance는 value type이다.
- 정의
struct 구조체 이름{
property and method
}
ex)
struct info
{
var name: String
var height: Int
}
var myInfo1: Info = Info(name: "Kim", height: 100)
myInfo1.name = "Koon" //변경 가능
myInfo1.height = 0 // 변경 가능
let myInfo2: Info = Info(name: "Park", height: 110)
myInfo2.name = "Soon" //변경 불가
myInfo2.height = 10 //변경 불가
class
- instance는 reference type이다.
-정의
class 클래스 이름{
property and method
}
ex)
class info
{
var name: String
var height: Int
}
var myInfo1: Info = Info(name: "Kim", height: 100)
myInfo1.name = "Koon" //변경 가능
myInfo1.height = 0 // 변경 가능
let myInfo2: Info = Info(name: "Park", height: 110)
myInfo2.name = "Soon" //변경 가능
myInfo2.height = 10 //변경 가능
struct에서는 안되던게 class에서는 가능하다.
class의 인스턴스는 참조 타입이므로 property value들을 변경하는 것이 가능하다.
-클래스 인스턴스 생성후 인스턴스 소멸
class info
{
var name: String
var height: Int
deinit{
print("instance has been deleted")
}
}
var dog: info = info()
dog = nil
c++ struct과 다른점들:
- 거이 똑같다.
c++ class와 다른점들:
- c++에서는 *를 붙이지 않으면, 참조 타입이 아니다.
- swift에서는 class 인스턴스가 default로 참조 타입이다.
'Programming > Swift' 카테고리의 다른 글
[Readable Coding Practice] Fetching data from REST API with URLSession (0) | 2021.06.18 |
---|---|
How to setup UITabBar programmatically (0) | 2021.06.06 |
Adrenalist does not collect any personal information (0) | 2021.05.06 |
[Swift] Optional Unwrapping과 Nil Coalescing (0) | 2020.10.30 |
[Swift] Struct vs. Class 언제 사용? (0) | 2020.10.22 |