prosource

"프로토콜... 자체 또는 관련 형식 요구 사항이 있기 때문에 일반 제약 조건으로만 사용할 수 있습니다"는 무엇을 의미합니까?

probook 2023. 5. 13. 10:19
반응형

"프로토콜... 자체 또는 관련 형식 요구 사항이 있기 때문에 일반 제약 조건으로만 사용할 수 있습니다"는 무엇을 의미합니까?

Swift에서 사용자 지정 프로토콜을 기반으로 하는 사전(실제 해시 집합)을 만들려고 하는데 제목에 오류가 발생합니다.

프로토콜 'myProtocol'은 자체 또는 관련 형식 요구 사항이 있으므로 일반 제약 조건으로만 사용할 수 있습니다.

도무지 종잡을 수가 없어요

protocol Observing: Hashable { }

var observers = HashSet<Observing>()

의정서Observing프로토콜에서 상속됨Hashable결국 프로토콜을 상속받습니다.Equatable의정서Equatable에는 다음과 같은 요구 사항이 있습니다.

func ==(lhs: Self, rhs: Self) -> Bool

그리고 다음을 포함하는 프로토콜은Self형식 제약 조건을 제외하고는 내부 어딘가에서 사용할 수 없습니다.

여기 비슷한 질문이 있습니다.

이 문제를 해결하기 위해 제네릭을 사용할 수 있습니다.이 예를 고려해 보십시오.

class GenericClass<T: Observing> {
   var observers = HashSet<T>()
}

언급URL : https://stackoverflow.com/questions/24926310/what-does-protocol-can-only-be-used-as-a-generic-constraint-because-it-has

반응형