什么是Alef迭代运算符?

时间:2016-04-17 17:51:47

标签: loops iterator operators iteration

Alef中,什么是迭代运算符::以及它做了什么?

1 个答案:

答案 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]01,{{1}的整数},...,2

请参阅Alef Language Reference ManualPDF)以供参考。本手册还提供了两个使用迭代运算符复制字符串(即99)的简洁示例。