반응형
"프로토콜... 자체 또는 관련 형식 요구 사항이 있기 때문에 일반 제약 조건으로만 사용할 수 있습니다"는 무엇을 의미합니까?
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
반응형
'prosource' 카테고리의 다른 글
파이썬에서 JSON을 구문 분석(읽기)하고 사용하려면 어떻게 해야 합니까? (0) | 2023.05.13 |
---|---|
allowDefinition='MachineToApplication'으로 등록된 섹션을 응용 프로그램 수준을 초과하여 사용하는 동안 오류가 발생했습니다. (0) | 2023.05.13 |
Angular 2+에서 사용하지 않는 가져오기 및 선언을 제거할 수 있는 방법이 있습니까? (0) | 2023.05.13 |
십진수 값 형식을 선행 공백이 있는 문자열로 지정 (0) | 2023.05.13 |
일부 프로젝트는 이미 Eclipse의 작업 공간 오류에 있으므로 가져올 수 없습니다. (0) | 2023.05.13 |