제너릭 멤버를 generic으로 저장하는 컬렉션을 만들고 싶습니다. 이 작업을 수행하는 데 올바른 구문은 무엇입니까? 내가 할 노력하고있어 횡단하려는 시도에서, 가장에 의해 추측은 다음과 같습니다 : AdjacencyList
의 새로운 인스턴스를 생성 할 때제네릭 클래스에 제네릭 컬렉션 형식을 지정하려면 어떻게합니까?
class AdjacencyList<VertexType, EdgeType, VertexCollectionType: Collection, EdgeCollectionType: Collection> {
var vertices: VertexCollectionType<Vertex<VertexType>>
var edges: EdgeCollectionType<Edge<EdgeType>>
init() {
self.vertices = VertexCollectionType<VertexType>()
self.edges = EdgeCollectionType<EdgeType>()
}
}
class Vertex<VertexType> { ... }
class Edge<EdgeType> { ... }
여기서 'EdgeCollectionType'과 'VertexCollectionType'은 어디서 오는가? 그것들은 커스텀 콜렉션 타입입니까, 아니면 각각의 타입의'Set' 또는'Array'라고합시다? –
나는'Array'와'Set'을 사용할 것을 기대했지만, 찾고있는 솔루션 코드는'Collection' 프로토콜을 따르고 하나의 일반적인 타입 매개 변수를 받아들이는 커스텀 타입을 수용 할 수 있다고 믿습니다. 어떻게 든 '사전 (Dictionary)'을 수용 할 수 있다는 것은 깔끔할 것입니다.하지만 두 가지 유형 매개 변수가 필요하기 때문에 질문의 범위를 벗어날 수 있다고 생각합니다. –