我想使用循环填充任意长度的数组路径。有没有办法在每个数组元素上迭代填充运算符,相当于这个 shell 循环
set -A Test foo bar
for i in ${Foo[@]}; do print $i; done
据我所知,METAPOST 数组不是传统数组,所以我不知道这是否可以实现。我目前所做的看起来像这个 MWE。到目前为止有效,因为我的路径数组没有增长到超过十个元素,但如果增长到十个以上,我可能会忽略某些内容尚未填充。我想避免检查数组长度。
\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