在Alef中,什么是迭代运算符::
以及它做了什么?
答案 0 :(得分:1)
表达式中的迭代运算符::
(称为迭代表达式)允许包含语句基于其两个操作数执行多次,这两个操作数为其提供了整数边界。执行。它就好像围绕语句构造了一个循环。例如,以下两个函数具有相同的语义:
void foo1() { print(1::5); }
void foo2() { print(1); print(2); print(3); print(4); }
在循环之前评估::
的操作数,就像
void foo3() {
int counter = 1;
int end = 5;
for (; counter < end; ++counter)
print(counter);
}
注意,也可以在每次循环迭代时将计数器值存储到某个变量,例如,以下两个函数在语义上是等效的:
void bar1() {
int i;
printTwoNumbers(i = 1::5, i);
}
void bar2() {
printTwoNumbers(1, 1);
printTwoNumbers(2, 2);
printTwoNumbers(3, 3);
printTwoNumbers(4, 4);
}
这可以用于像
这样的巧妙技巧int i;
pInt[i = 0::100] = i;
初始化pInt[0]
,pInt[1]
,pInt[2]
,...,pInt[99]
到0
,1
,{{1}的整数},...,2
。
请参阅Alef Language Reference Manual(PDF)以供参考。本手册还提供了两个使用迭代运算符复制字符串(即99
)的简洁示例。