问题标签 [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 回答
485 浏览

generics - 为什么无法推断泛型类型?

我刚刚开始使用 Nim,并且遇到了泛型问题。

这是一个简化的示例,可以复制我遇到的问题。从具有泛型类型的简单对象类型开始T,并创建它的实例:

如果我proc用泛型类型创建 a ,然后返回对象的字段,它T的返回值是type ,它工作正常:TbarT

但是,如果我想返回T来自Foo.bartype 字段的多个副本的序列T,如下所示:

然后我收到以下错误:

错误:无法实例化:'T'

任何人都可以提供任何关于为什么会这样以及如何正确地做到这一点的见解吗?

0 投票
1 回答
81 浏览

class - 从父类返回泛型类型的序列

在下面的示例中,我有一个Foo具有泛型Tfoo类型字段的对象T

是可继承的Foo,并且有一个名为test的过程,它应该创建并返回一个T由子类定义的类型序列。

test在我的代码的最新版本中, proc的第一行有一个错误:

无法实例化:'T'


如果我摆脱S类型并将其替换为FooP,则错误消失,但随后出现错误discard b.test()

类型不匹配:得到(BarP)


这是代码:

我确定我只是把这一切搞砸了。有人能告诉我在这种情况下如何成功返回子类定义test()的类型序列吗?T

0 投票
1 回答
319 浏览

nim-lang - 将结果循环到数组

我昨天刚开始接触 Nim。我的目标是计算表达式 b[i]/a[i] 中值的平均值。我尝试使用数学模块和内置函数“mean”,但显然它只适用于数组。我不知道如何将循环的结果解析为数组(或者可能有不同的解决方案?任何帮助表示赞赏!

0 投票
2 回答
2847 浏览

linux - 如何在 nim 中创建一个 qt 应用程序

我希望在即将到来的项目中使用 nim,但我不确定从哪里开始。在过去的两年里,我开发了相当多的 webapps,而且我对 python 非常擅长。我也很擅长Linux。

现在我想为 linux 制作一个 GUI 应用程序,可能使用 qt。我查了 qt how tos,但他们主要使用 c++ 或 python 和 qt creator。如何将 nim 绑定到 qt?

0 投票
2 回答
3421 浏览

nim-lang - How to get the type of a value as string?

I would like to know if it is possible to get the type (int32 / float64 / string) from a value in Nim at runtime?

I thought this would be possible with the "typeinfo" library but I can't figure it out!

EDIT: Got an answer and made this real quick:

Output:

0 投票
1 回答
1108 浏览

hashset - Nim-lang 中的哈希集

我正在尝试使用 HashSet 类型的 nim-lang 但收到错误

错误是

我已经导入了哈希库

0 投票
1 回答
725 浏览

nim-lang - 获取当前操作系统的最佳方法是什么?

我正在寻找类似于 python 的 sys.platform 的东西,它返回 'linux'、'windows' 等,甚至更好,比如 python 的平台模块,它为您提供操作系统、发行版、发布版本等。

0 投票
2 回答
465 浏览

macos - 在 OSX 上的 Nim 中播放 .wav 文件的简单方法是什么?

我正在尝试wav在一个看起来像这样的非常简单的程序中播放文件,目前正在尝试使用nim-csfml

但它似乎依赖于libcsfml.audio的存在,虽然我的程序编译得很好,但当我尝试实际运行它时出现错误

(我有一个libcsfml-audio.dylib,因为我使用了 OSX 共享库csfml/sfml

还有其他方法可以播放.wav文件Nim吗?


编辑1:

在@def- 提出 PR 之后,我现在得到一个不同的、稍微令人欣慰的错误,这可能是由于对 nim 如何处理共享库的一些了解不足:

我添加path = "/usr/local/lib"到我的nim.cfg文件中,但它似乎没有任何影响。我也导出了$LD_LIBRARY_PATH="/usr/local/lib"/usr/local/bin是在哪里libcsfml-audio.dylib。),并尝试通过编译

谢谢您的帮助!

0 投票
1 回答
81 浏览

macros - 从发出杂注中删除堆栈跟踪

如何创建不添加堆栈跟踪的发出宏?

生产

我更喜欢的地方

没有任何额外的编译器参数,如--stacktrace: off.

0 投票
1 回答
336 浏览

nim-lang - 为什么会出现警告不要使用 system.cmp[string] 进行 Nim 字符串比较

在 Nim 标准库中有一个警告

谁能为此提供更多解释?

我试过的

  1. 查看源代码

听起来可能有两种排序实现,一种是普通的,另一种是专门用于比较字符串的,但是在这里查看源代码我找不到任何这样的专业化。

  1. 尝试编译器

我尝试编写以下程序:

并尝试了两种比较方法。但是,当我比较生成的 C 代码时,似乎没有任何显着差异。fc 的输出如下所示,但在我看来,它只是看起来不重要的变化: