2016-04-17 54 views

回答

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]012,...,99初始化整數。

查看Alef Language Reference ManualPDF)僅供參考。該手冊還提供了兩個使用迭代運算符複製字符串的簡單示例(即strcpy)。