내가 1에서 을 사용하려고 | .. | J 모든 list.i_th (Z)와 같은 list.count ~ 오래된 list.i_th (Z) 끝에펠의 루프를 통해 내 포스트 코디 션에서 링크 된 목록을 트래버스하는 방법은 무엇입니까?
하지만 알 수없는 식별자 z는 말한다. 이 구문에 무슨 문제가 있습니까 ??
내가 1에서 을 사용하려고 | .. | J 모든 list.i_th (Z)와 같은 list.count ~ 오래된 list.i_th (Z) 끝에펠의 루프를 통해 내 포스트 코디 션에서 링크 된 목록을 트래버스하는 방법은 무엇입니까?
하지만 알 수없는 식별자 z는 말한다. 이 구문에 무슨 문제가 있습니까 ??
구문이 정확합니다. 그러나 이름이 z
이 아니므로 오류가 발생합니다. 대신 커서 변수 j
이 있습니다. 현재 커서 위치의 항목은 j.item
으로 액세스됩니다.
또 다른 문제점은 j
이 현재 컨텍스트 (사후 조건)에서 평가되지만 피처 본문이 실행되기 전에 이전 표현식이 평가된다는 것입니다. 여기서 j
은 부재합니다. 결과적으로 old list.i_th (j.item)
코드는 컴파일되지 않습니다. 즉, 값은 이전 목록에서 가져온 것이지만 현재 색인으로 가져와야합니다. 표현 (old list).i_th (j.item)
이 트릭을합니다.
하지만 여전히 필요한 것은 수행하지 않습니다. 목록 개체에 대한 참조가 동일하게 유지되므로 old list = list
이됩니다. 이전 요소를 가져 오려면 대신 목록 사본이 필요합니다 ((old list.twin)
).
위의 내용을 모두 조합하면 표현식은 across 1 |..| list.count as j all list.i_th (j.item) ~ (old list.twin).i_th (j.item) end
이어야합니다.
작동하지 않습니다. z 또는 j는 포인터의 임의의 이름입니다. 아직 알 수없는 식별자가 표시됩니다. – Mzzz
실제로, 나는 오래된 표현이 있다는 사실을 놓쳤습니다. 이 문제를 해결하기위한 답을 수정했습니다. –