루프를 사용하여 임의 길이의 배열 경로를 채우고 싶습니다. 각 배열 요소에서 채우기 연산자를 반복하는 방법이 있습니까? 이 쉘 루프와 동일합니다.
set -A Test foo bar
for i in ${Foo[@]}; do print $i; done
AFAIU METAPOST 배열은 클래식 배열이 아니므로 이것이 가능한지 모르겠습니다. 지금까지 내가 하고 있는 일은 MWE와 같습니다. 내 경로 배열이 10개 이상의 요소로 증가하지 않았기 때문에 지금까지는 작동하지만, 그렇다면 무언가가 채워지지 않았다는 것을 간과할 수 있습니다. 배열 길이를 확인하는 것은 피하고 싶습니다.
\mainlanguage[]
\language[]
\starttext
\startMPpage
path T[];
T1:=unitcircle scaled 20;
T2:=unitsquare scaled 20 xshifted 30;
T3:=unitcircle scaled 20 xshifted 80;
for i=1 step 1 until 10:
if known T[i]:
draw T[i] ;
fi
endfor ;
\stopMPpage
\stoptext
답변1
당신은 시도해 볼 수 있습니다 forever
:
\starttext
\startMPpage
path T[];
T1:=unitcircle scaled 20;
T2:=unitsquare scaled 20 xshifted 30;
T3:=unitcircle scaled 20 xshifted 80;
i:=1;
forever:
if known T[i]:
draw T[i];
i:=i+1;
fi
exitif unknown T[i];
endfor ;
\stopMPpage
\stoptext