问题标签 [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.
generics - nim 带有泛型的两个键表
试图在 Nim 中创建一个两键字典,其中值是用户指定的类型。
这给出了以下错误:
我也有这个问题。
这给出了同样的错误。
nim-lang - 初始化一个 seq 的 seq
我是 Nim 的新手,遇到了一些问题。以下代码导致SIGSEGV: Illegal storage access. (Attempt to read from nil?)
. 我似乎无法弄清楚如何用值填充序列序列。
我尝试过的其他方法似乎更接近......
...但现在我要打out of bounds [IndexError]
...
...我究竟做错了什么?
macros - 如何创建一个 nnkUInt16Lit NimNode
除了描述nnkUInt16Lit
enum 变体和这个 AST 表示之外,没有关于此的文档42'i16 - nnkInt16Lit(intVal = 42)
。
当我像常规一样使用它时,nnkIntLit
它会失败。
这给出了一个错误:
intVal
找不到字段
(这不是我的实际用法。这只是一个演示问题。)
我尝试了不同的变体intVal
,但错误总是变成undeclared identifier
. 我会使用parseExpr()
,但似乎$
an 上的 procint
在编译时不起作用。
我试图寻找NimNode
类型定义的源代码来检查它,但到目前为止我找不到它。
那么如何uint16
在宏中创建 NimNode?
generics - 如何解决“不允许泛型参数”
TL;DR: 如果您有类似的问题,请首先检查您是否做过一些完全愚蠢的事情,例如将 a:
与 a混淆=
。我对错误消息感到非常困惑,以至于我设法用另一个愚蠢的错误重现了一个愚蠢的错误,所以笑一笑:
我遇到了一个我正在努力解决错误的问题no generic parameters allowed
。这个问题可能最好用简化的解释:仅通过第一个元素比较元组的问题。考虑这个例子:
这个例子产生Error: no generic parameters allowed for sort
. 我尝试了各种语法变体,还定义了嵌套的比较器过程。我不明白的是:为什么比较器仍然被认为是通用的?我期待在sortByFirstTupleElement
类型中K
和V
是来自调用上下文的实例化类型,即int
和NotComparable
. 因此,我希望cmpByKey[K,V]
是具体的cmpByKey[int,NotComparable]
。是否有使比较器具体化的语法技巧?
如果这是不可能的,这里有什么可能的解决方法?也许不仅仅是在这个例子中,而是在一般情况下?我想每次泛型proc必须传递另一个涉及泛型类型的proc时都会出现这个问题?
arrays - 在 Nim 中创建对数组的引用
在 Nim 中,如何传递对数组的引用而不是按值传递?到目前为止,请参阅上面的代码。
generics - 定义泛型函数类型
给定以下代码段:
我想为它定义基本和基本消费者的几种类型,如下所示:
现在,当我创建一个新的ConsumeOne
:
我收到以下编译器错误:Error: type mismatch: got (proc (b: BaseOne): bool{.gcsafe, locks: 0.}) but expected 'ConsumeOne'
我究竟做错了什么?
nim-lang - 无法获取从 marshal 创建的 StringStream 以输出数据
假设我有这样的类型:
我编组一个这样的实例:
我可以直接读取它的数据:
但我无法使用readLine()
或任何其他阅读过程来阅读它:
根本没有输出。
如果我不使用marshal.store
.
因此,我似乎遗漏了一些可能非常基本和明显的东西。知道那可能是什么吗?
sdl - Nim 和 SDL2 与 Rect 的问题
我有以下 Nim+official libsdl2 wrapper code
并且在编译时出现错误:
第 20 行相同:
如果在copy()中用nil替换pos并注释queryTexture(),一切都会好起来的。请帮我解决这个问题。
nim-lang - 是否有可用于导入模块的“默认”文件名?
我的意思是,如果有一些标准名称可用于本地Nim 模块中的主文件,以便在通过路径导入时,我们可以简单地引用目录?
例如,现在我似乎需要指定本地模块的目录和文件名,如下所示:
而如果找到预期的文件名,我希望能够简单地引用该目录:
除了使用 Nimble 或为文件--path
中的每个模块创建单独的标志之外nim.cfg
,还有什么可以允许这样做的吗?
另外,一般来说,模块的主文件是否有一个常规名称?
如果我有一个像这样的简单应用程序:
在myapp.nim
我必须使用import sub.sub
加载子模块。有了import sub
,我明白了Error: cannot open sub
。
同样,如果我在应用程序之外有模块并将 设置--path
为这些模块的父级,我必须使用import my_module.my_module
.
nim-lang - 如何比较模板中的两个 typedesc 是否相等
我希望能够比较模板中的两个 typedesc 以查看它们是否引用相同的类型(或至少具有相同的类型名称),但不确定如何。==
运营商不允许这样做。
它给了我这个:
如何才能做到这一点?