LeetCode의 Linked List Cycle 문제를 풀다가
===
를 ~=
와 헷갈리는 바람에 gae고생을 하였다.
너무 크게 얻어 맞은 느낌이라 정리를 안 해도 까먹진 않을 것 같지만...
그래도 그냥 넘어가면 아쉬우니 정리를 해보려고 한다.
===
와 ~=
모두 비교 연산자에 속한다.
===
의 반대 격이라고 할 수 있는 !==
도 당연히 비교 연산자다.
초보 입장에서 값 비교를 할 일은 많아도
참조나 패턴 비교를 할 일은 비교적 적다 보니 이해도가 낮았던 것 같다.
class
는 참조 타입의 대표격이라고 할 수 있다.
비교 연산을 실험해보기 위해 Book
이라는 class
를 생성했다.
class Book {
let title: String
let author: String
init(title: String, author: String) {
self.title = title
self.author = author
}
}
그리고 4개의 인스턴스를 생성해준 뒤, bookShelf
에 3권을 담았다.
let book1 = Book(title: "Swift왕 김애플", author: "김애플")
let book2 = Book(title: "사과 농장 차리는 방법", author: "김애플")
let book3 = Book(title: "와장창 알고리즘", author: "와장창")
let book4 = Book(title: "와장창 자료구조", author: "와장창")
var bookShelf = [book1, book2, book3]