gpt4 book ai didi

nim-lang - 如何在 Nim 中将非纯函数标记为纯函数

转载 作者:行者123 更新时间:2023-12-03 23:33:32 25 4
gpt4 key购买 nike

有没有办法将非纯函数 p 标记为纯函数?也许有一些编译指示?

我使用p进行调试,不能在纯func procs中使用。

playground

proc p(message: string): void = echo message

func purefn: void =
p "track"

purefn()

错误:

/usercode/in.nim(3, 6) Error: 'purefn' can have side effects

最佳答案

嗯,首先你可以使用 debugEcho 而不是 echo - 它没有副作用(它是专门为这样的用例而设计的)。

在其他情况下,您可以通过以下方式向编译器“撒谎”:

proc p(message: string) = 
{.cast(noSideEffect).}:
echo message

func purefn =
p "track"

purefn()

https://nim-lang.org/docs/manual.html#pragmas-nosideeffect-pragma 中所述,但我建议不要这样做。

关于nim-lang - 如何在 Nim 中将非纯函数标记为纯函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65828146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com