问题标签 [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,并且遇到了泛型问题。
这是一个简化的示例,可以复制我遇到的问题。从具有泛型类型的简单对象类型开始T
,并创建它的实例:
如果我proc
用泛型类型创建 a ,然后返回对象的字段,它T
的返回值是type ,它工作正常:T
bar
T
但是,如果我想返回T
来自Foo.bar
type 字段的多个副本的序列T
,如下所示:
然后我收到以下错误:
错误:无法实例化:'T'
任何人都可以提供任何关于为什么会这样以及如何正确地做到这一点的见解吗?
class - 从父类返回泛型类型的序列
在下面的示例中,我有一个Foo
具有泛型T
和foo
类型字段的对象T
。
是可继承的Foo
,并且有一个名为test
的过程,它应该创建并返回一个T
由子类定义的类型序列。
test
在我的代码的最新版本中, proc的第一行有一个错误:
无法实例化:'T'
如果我摆脱S
类型并将其替换为FooP
,则错误消失,但随后出现错误discard b.test()
:
类型不匹配:得到(BarP)
这是代码:
我确定我只是把这一切搞砸了。有人能告诉我在这种情况下如何成功返回子类定义test()
的类型序列吗?T
nim-lang - 将结果循环到数组
我昨天刚开始接触 Nim。我的目标是计算表达式 b[i]/a[i] 中值的平均值。我尝试使用数学模块和内置函数“mean”,但显然它只适用于数组。我不知道如何将循环的结果解析为数组(或者可能有不同的解决方案?任何帮助表示赞赏!
linux - 如何在 nim 中创建一个 qt 应用程序
我希望在即将到来的项目中使用 nim,但我不确定从哪里开始。在过去的两年里,我开发了相当多的 webapps,而且我对 python 非常擅长。我也很擅长Linux。
现在我想为 linux 制作一个 GUI 应用程序,可能使用 qt。我查了 qt how tos,但他们主要使用 c++ 或 python 和 qt creator。如何将 nim 绑定到 qt?
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:
hashset - Nim-lang 中的哈希集
我正在尝试使用 HashSet 类型的 nim-lang 但收到错误
错误是
我已经导入了哈希库
nim-lang - 获取当前操作系统的最佳方法是什么?
我正在寻找类似于 python 的 sys.platform 的东西,它返回 'linux'、'windows' 等,甚至更好,比如 python 的平台模块,它为您提供操作系统、发行版、发布版本等。
macos - 在 OSX 上的 Nim 中播放 .wav 文件的简单方法是什么?
我正在尝试wav
在一个看起来像这样的非常简单的程序中播放文件,目前正在尝试使用nim-csfml:
但它似乎依赖于libcsfml.audi
o的存在,虽然我的程序编译得很好,但当我尝试实际运行它时出现错误
(我有一个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
。),并尝试通过编译
谢谢您的帮助!
macros - 从发出杂注中删除堆栈跟踪
如何创建不添加堆栈跟踪的发出宏?
生产
我更喜欢的地方
没有任何额外的编译器参数,如--stacktrace: off
.