expermimental 编译指示
experimental 编译指示用于启用实验性的语言特性。也就是说,具体到每个特性,有的过于不稳定,无法发布;有的前景不明朗(可能随时被删除)。详情参阅实验手册 。
示例:
import std/threadpool
{.experimental: "parallel".}
proc threadedEcho(s: string, i: int) =
echo(s, " ", $i)
proc useParallel() =
parallel:
for i in 0..4:
spawn threadedEcho("并行地使用 echo ", i)
useParallel()
expermimental 编译指示是顶层语句,模块里出现了这个编译指示之后,它所启用的特性就一直有效。这会给宏和泛型实例的使用带来问题,因为它们可以跨越模块作用域。目前,必须在 .push/pop 环境中使用以避免问题:
# client.nim
proc useParallel*[T](unused: T) =
# 这里使用泛型 T 演示问题.
{.push experimental: "parallel".}
parallel:
for i in 0..4:
echo "并行输出"
{.pop.}
import client
useParallel(1)
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .