728x90
https://ios-development.tistory.com/393
== vs ===
- ==
- 각 변수의 Value를 비교한다.
- Stack 영역의 값을 비교
- Equatable을 채택해서 static func ==() method를 선언하면 사용할 수 있다.
- ===
- 각 변수가 참조하고 있는 instance를 비교한다
- Heap 영역의 값을 비교
- 때문에 reference type인 변수들이 같은 instance를 참조하고 있는지 직접 비교가 가능하다.
== 사용 예시
let a: Int = 1
let b: Int = 2
print(a == b)
// false
class Test: Equatable {
static func == (lhs: Test, rhs: Test) -> Bool {
return lhs.value == rhs.value
}
let value: Int
init(value: Int) {
self.value = value
}
}
let c = Test(value: 1)
let d = Test(value: 1)
print(c == d)
// true
=== 사용 예시
class Test: Equatable {
static func == (lhs: Test, rhs: Test) -> Bool {
return lhs.value == rhs.value
}
let value: Int
init(value: Int) {
self.value = value
}
}
let a = Test(value: 1)
let b = Test(value: 1)
let c = Test(value: 2)
let d = c
print(a == b)
// true -> 같은 value를 가짐
print(a === b)
// false -> 같은 instance를 참조하고 있지 않음
print(c === d)
// true -> 같은 instance를 참조함
728x90
'iOS > 설명' 카테고리의 다른 글
[iOS] OOP와 POP는 어떤 경우에 써야 할까 (고찰) (0) | 2024.03.17 |
---|---|
[iOS] High performance based drawing (0) | 2024.02.24 |
[iOS] Mirror Struct (0) | 2024.02.24 |
[iOS] iOS Webview에서 텍스트 복사하는법 (0) | 2023.07.15 |
[iOS] beginBackgroundTask (0) | 2023.06.24 |
댓글