[swift] Swift 구조체에서 사용되는 값을 비교하는 방법에 대해 알려주세요.
먼저, 구조체를 선언할 때 Equatable
프로토콜을 준수하도록 선언합니다. 그리고 ==
연산자를 사용하여 두 값이 같은지 비교합니다.
예를 들어, 다음과 같이 구조체를 선언하고 Equatable
프로토콜을 준수하도록 구현할 수 있습니다.
struct Point: Equatable {
var x: Int
var y: Int
}
위의 예시에서 Point
구조체는 두 개의 정수형 변수 x
와 y
를 포함하고 있습니다. Equatable
프로토콜을 준수하기 위해 ==
연산자를 구현하도록 합니다.
func == (lhs: Point, rhs: Point) -> Bool {
return lhs.x == rhs.x && lhs.y == rhs.y
}
이제 Point
구조체를 사용할 때 ==
연산자를 통해 두 값이 같은지 비교할 수 있습니다.
let point1 = Point(x: 2, y: 3)
let point2 = Point(x: 2, y: 3)
if point1 == point2 {
print("두 점은 같습니다.")
} else {
print("두 점은 다릅니다.")
}
위의 예시에서 point1
과 point2
는 같은 값이므로 “두 점은 같습니다.”가 출력됩니다.
더 복잡한 구조체나 클래스의 경우, Equatable
프로토콜을 준수하여 값을 비교하는 메서드를 구현할 수 있습니다. 값을 비교하는 로직에 따라 맞춤형 비교 로직을 구현할 수 있습니다.