• unroll编译指示

    unroll编译指示

    unroll 编译指示可用于告诉编译器它应该为执行效率展开 for 或 while 循环:

    1. proc searchChar(s: string, c: char): int =
    2. for i in 0 .. s.high:
    3. {.unroll: 4.}
    4. if s[i] == c: return i
    5. result = -1

    在上面的例子中,搜索循环按因子4展开。展开因子也可以省略;然后编译器选择适当的展开因子。

    注意 :目前编译器会识别但忽略此编译指示。