반응형
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("다름")
}
반응형
'iOS' 카테고리의 다른 글
[iOS 앱 개발] Swift 형 체크(is) (0) | 2022.09.22 |
---|---|
[iOS 앱 개발] Swift 다형성(protocol, class) 예제 코드 (1) | 2022.09.20 |
[iOS 앱 개발] Swift 클로저(Closure), 후행 클로저 (0) | 2022.09.16 |
[iOS 앱 개발] Swift 함수(func) (0) | 2022.09.06 |
[iOS 앱 개발] Swift Dictionary (0) | 2022.09.05 |
댓글