Archive/패캠(올인원)

😂 ch13 swift Equatable?!

lgvv 2021. 6. 25. 22:41

✅ 이번 시간에는 Equtable에 대해서 알아보도록 할게.

Equatable이 뭐냐?

애플 공식 개발자문서

두 값이 동일한지 확인할 수 있는 프로토콜이야.

 

우리가 코딩을 하면서 "abc" == "abc" 혹은 33 != 33 등 스위프트의 기본 타입을 같은지 다른지 비교해본적이 있었지?

너무 단순하게 그냥 비교하면 되는거 아닌가..? 썼던 것들인데,,

우리는 이러한 문제에 부딪히게 돼

그럼 swift에서 구조체나 클래스의 인스턴스들의 값이 같은지는 어떻게 비교할 수 있을까?

 

아래의 예시를 한번 봐보자.

class A{
    var aNum : Int
    init(_ aNum :Int) {
        self.aNum = aNum
    }
}



if A(1) == A(2) //error!
{

}

출처: https://zeddios.tistory.com/227 [ZeddiOS]

에러가 발생한다고 한다!

 

그러면 우리는 Equtable을 상속 받아서 사용해야 하는데, 여기에는 

    static func == (lhs: Self, rhs: Self) -> Bool {
        return true
    }

메소드가 프로토콜로 정의되어 있어.

여기 안에 정의해서 사용하면 돼

 

 

 

- 참고

 

https://zeddios.tistory.com/227

 

Swift ) Equatable

안녕하세요 :) Zedd입니다. 오늘은 Swift의 Equatable에 대해서 알아볼거에요 XD 저도 처음들어본답니다... 다음글에서 Equatable이 나오는데 Equatable을 모르시는 분들을 위해(+나) 정리해보려고 해요 :)

zeddios.tistory.com

 

https://developer.apple.com/documentation/swift/equatable

 

Apple Developer Documentation

 

developer.apple.com

http://seorenn.blogspot.com/2014/08/swift-equatable-comparable-printable.html

 

Swift의 기본 프로토콜 세 가지: Equatable, Comparable, Printable

iOS 및 macOS 용 앱 개발, Emacs, Vim, Python 위주로 다루는 Seorenn 개인 블로그

seorenn.blogspot.com