experimental编译指示
experimental 编译指示实现了实验语言功能。 根据具体特征,这意味着该特征被认为对于其他稳定版本而言太不稳定,或者该特征的未来不确定(可能随时删除)。 示例:
- import threadpool
- {.experimental: "parallel".}
- proc threadedEcho(s: string, i: int) =
- echo(s, " ", $i)
- proc useParallel() =
- parallel:
- for i in 0..4:
- spawn threadedEcho("echo in parallel", i)
- useParallel()
作为顶级语句,实验编译指示为其启用的模块的其余部分启用了一项功能。 这对于跨越模块范围的宏和通用实例化是有问题的。 目前这些用法必须放在 .push/pop 环境中:
- # client.nim
- proc useParallel*[T](unused: T) =
- # use a generic T here to show the problem.
- {.push experimental: "parallel".}
- parallel:
- for i in 0..4:
- echo "echo in parallel"
- {.pop.}
- import client
- useParallel(1)