Skip to content

Latest commit

 

History

History
35 lines (26 loc) · 829 Bytes

==_vs_===.md

File metadata and controls

35 lines (26 loc) · 829 Bytes

== vs ===

  • == : 값을 비교하는 연산자
let a: Int = 3
let b: Int = 3
let c = a

a == b // true : 상수/변수 안에 들어있는 값이 같은지 비교하기 때문
a == c // true

  • === : 참조 값을 비교하는 연산자
class Person {
    let name: String
    let age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

let 철수 = Person(name: "철수", age: 22)
let 철수쌍둥이동생 = Person(name: "철수", age: 22)
let 철수복제인간 = 철수

철수 === 철수쌍둥이동생 // false : 각각의 객체를 생성하였기에 참조하고 있는 메모리 주소가 다르기 때문
철수 === 철수복제인간 // true : 철수와 철수복제인간은 같은 메모리 주소를 참조 하고 있기 때문