2017-10-21 20 views
0

ITERABLE [K] 인 결과 유형을 반환하려고합니다. 내가 아는 전부는 Iterable이 ITERATION_CURSOR로부터 상속 받았다는 것인데, 따라서 나는 unworking 코드를 만들었지 만 컴파일되지는 않는다. 그것은 C했다 ++이나 자바,에펠에서 ITERABLE 유형을 반환하는 중

ITERATION_CURSOR myCursor = new ITERABLE; 

내가 모르는 경우

obtainKey (v: V): ITERABLE[G] 
    local 
     myCollection: ITERABLE [G] 
     myCursor:ITERATION_CURSOR[G] 
    do 
     create {ITERABLE[G]} myCursor 
     Result := myCursor 

내 생각 엔, 나는 다음과 같이 뭔가를해야한다는 것입니다. 내 가정은 틀릴 수 있습니다.

에펠에서 이런 종류의 작업을 수행하고 위의 코드를 작동 시키려면 어떻게해야합니까?

+0

달성하려는 내용, 코드의 목적, 예상되는 내용을 설명하면 도움이됩니다. 단지 "컴파일"하는 것을 "작업"으로 만드는 것과 (귀하의 관점에서) 동일하지 않습니다. 특히,'v'라는 인수가있는 이유는 무엇입니까? 'obtain_key'함수를 어떻게 사용해야할까요? –

답변

0

ITERABLE 클래스는 지연 클래스 (java의 추상 클래스)이며 지연 클래스를 만들 수 없습니다. 지연되지 않고 ITERABLE 클래스에서 상속되는 클래스를 사용해야합니다. ITERATION_CURSOR 클래스도 지연됩니다. 사용할 항목은 구현시 필요한 항목에 따라 달라질 수 있습니다. 다음은 LINKED_LIST를 사용하는 예제입니다.

obtain_key (v:V): ITERABLE[G] 
    local 
     my_list:LINKED_LIST[G] 
    do 
     create my_list.make 
     Result := my_list 
    end