• experimental编译指示

    experimental编译指示

    experimental 编译指示实现了实验语言功能。 根据具体特征,这意味着该特征被认为对于其他稳定版本而言太不稳定,或者该特征的未来不确定(可能随时删除)。 示例:

    1. {.experimental: "parallel".}
    2.  
    3. proc useParallel() =
    4. parallel:
    5. for i in 0..4:
    6. echo "echo in parallel"

    作为顶级语句,实验编译指示为其启用的模块的其余部分启用了一项功能。 这对于跨越模块范围的宏和通用实例化是有问题的。 目前这些用法必须放在 .push/pop 环境中:

    1. # client.nim
    2. proc useParallel*[T](unused: T) =
    3. # use a generic T here to show the problem.
    4. {.push experimental: "parallel".}
    5. parallel:
    6. for i in 0..4:
    7. echo "echo in parallel"
    8.  
    9. {.pop.}
    1. import client
    2. useParallel(1)