본문 바로가기
iOS

[iOS 앱 개발] Swift 구조체/클래스 if 절 비교를 위한 "==" 연산자 구현

by Dokon Jang 2022. 9. 19.
반응형

Swift에서 새로 새성한 구조체 또는 클래스에서는 두 인스턴스를 비교 연산자(==, !=)는 존재하지 않습니다.

구조체와 클래스를 비교하기 위해서 비교 연산자에 대한 구현이 필요합니다.

아래의 코드는 비교 연산자를 구현한 소스입니다.

 

구조체
struct Rectangle {
    var width : Int = 0
    var height : Int = 0    
}

// 비교 연산자 구현
extension Rectangle : Equatable {
    static func == (a : Rectangle, b : Rectangle) -> Bool {
        return a.width == b.width && a.height == b.height
    }
}

var rect1 = Rectangle(width : 10, height : 200)

var rect2 = Rectangle(width : 10, height : 200)

if rect1 == rect2 {
    print("같음")
}else if rect1 != rect2 {
    print("다름")
}

 

클래스
class Rectangle {
    var width : Int = 0
    var height : Int = 0    

	// 클래스 초기화(생성자)
    init(width : Int, height : Int){
        self.width = width
        self.height = height
    }
}

// 비교 연산자 구현
extension Rectangle : Equatable {
    static func == (a : Rectangle, b : Rectangle) -> Bool {
        return a.width == b.width && a.height == b.height
    }
}

var rect1 = Rectangle(width : 10, height : 200)

var rect2 = Rectangle(width : 10, height : 200)

if rect1 == rect2 {
    print("같음")
}else if rect1 != rect2 {
    print("다름")
}

댓글1