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展开。展开因子也可以省略;然后编译器选择适当的展开因子。

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