问题标签 [nim-lang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
859 浏览

generics - nim 带有泛型的两个键表

试图在 Nim 中创建一个两键字典,其中值是用户指定的类型。

这给出了以下错误:

我也有这个问题。

这给出了同样的错误。

0 投票
2 回答
1321 浏览

nim-lang - 初始化一个 seq 的 seq

我是 Nim 的新手,遇到了一些问题。以下代码导致SIGSEGV: Illegal storage access. (Attempt to read from nil?). 我似乎无法弄清楚如何用值填充序列序列。

我尝试过的其他方法似乎更接近......

...但现在我要打out of bounds [IndexError]...

...我究竟做错了什么?

0 投票
1 回答
52 浏览

macros - 如何创建一个 nnkUInt16Lit NimNode

除了描述nnkUInt16Litenum 变体和这个 AST 表示之外,没有关于此的文档42'i16 - nnkInt16Lit(intVal = 42)

当我像常规一样使用它时,nnkIntLit它会失败。

这给出了一个错误:

intVal找不到字段

(这不是我的实际用法。这只是一个演示问题。)

我尝试了不同的变体intVal,但错误总是变成undeclared identifier. 我会使用parseExpr(),但似乎$an 上的 procint在编译时不起作用。

我试图寻找NimNode类型定义的源代码来检查它,但到目前为止我找不到它。

那么如何uint16在宏中创建 NimNode?

0 投票
1 回答
369 浏览

generics - 如何解决“不允许泛型参数”

TL;DR: 如果您有类似的问题,请首先检查您是否做过一些完全愚蠢的事情,例如将 a:与 a混淆=。我对错误消息感到非常困惑,以至于我设法用另一个愚蠢的错误重现了一个愚蠢的错误,所以笑一笑:

我遇到了一个我正在努力解决错误的问题no generic parameters allowed。这个问题可能最好用简化的解释:仅通过第一个元素比较元组的问题。考虑这个例子:

这个例子产生Error: no generic parameters allowed for sort. 我尝试了各种语法变体,还定义了嵌套的比较器过程。我不明白的是:为什么比较器仍然被认为是通用的?我期待在sortByFirstTupleElement类型中KV是来自调用上下文的实例化类型,即intNotComparable. 因此,我希望cmpByKey[K,V]是具体的cmpByKey[int,NotComparable]。是否有使比较器具体化的语法技巧?

如果这是不可能的,这里有什么可能的解决方法?也许不仅仅是在这个例子中,而是在一般情况下?我想每次泛型proc必须传递另一个涉及泛型类型的proc时都会出现这个问题?

0 投票
1 回答
1935 浏览

arrays - 在 Nim 中创建对数组的引用

在 Nim 中,如何传递对数组的引用而不是按值传递?到目前为止,请参阅上面的代码。

0 投票
2 回答
92 浏览

generics - 定义泛型函数类型

给定以下代码段:

我想为它定义基本和基本消费者的几种类型,如下所示:

现在,当我创建一个新的ConsumeOne

我收到以下编译器错误:Error: type mismatch: got (proc (b: BaseOne): bool{.gcsafe, locks: 0.}) but expected 'ConsumeOne'

我究竟做错了什么?

0 投票
2 回答
131 浏览

nim-lang - 无法获取从 marshal 创建的 StringStream 以输出数据

假设我有这样的类型:

我编组一个这样的实例:

我可以直接读取它的数据:

但我无法使用readLine()或任何其他阅读过程来阅读它:

根本没有输出。


如果我不使用marshal.store.


因此,我似乎遗漏了一些可能非常基本和明显的东西。知道那可能是什么吗?

0 投票
1 回答
486 浏览

sdl - Nim 和 SDL2 与 Rect 的问题

我有以下 Nim+official libsdl2 wrapper code

并且在编译时出现错误:

第 20 行相同:

如果在copy()中用nil替换pos并注释queryTexture(),一切都会好起来的。请帮我解决这个问题。

0 投票
1 回答
180 浏览

nim-lang - 是否有可用于导入模块的“默认”文件名?

我的意思是,如果有一些标准名称可用于本地Nim 模块中的主文件,以便在通过路径导入时,我们可以简单地引用目录?

例如,现在我似乎需要指定本地模块的目录和文件名,如下所示:

而如果找到预期的文件名,我希望能够简单地引用该目录:

除了使用 Nimble 或为文件--path中的每个模块创建单独的标志之外nim.cfg,还有什么可以允许这样做的吗?

另外,一般来说,模块的主文件是否有一个常规名称?


如果我有一个像这样的简单应用程序:

myapp.nim我必须使用import sub.sub加载子模块。有了import sub,我明白了Error: cannot open sub

同样,如果我在应用程序之外有模块并将 设置--path为这些模块的父级,我必须使用import my_module.my_module.

0 投票
1 回答
354 浏览

nim-lang - 如何比较模板中的两个 typedesc 是否相等

我希望能够比较模板中的两个 typedesc 以查看它们是否引用相同的类型(或至少具有相同的类型名称),但不确定如何。==运营商不允许这样做。

它给了我这个:

如何才能做到这一点?