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

python - Nim:我怎样才能让它更接近 Python 语法?

我知道这通常不是一个好主意,但我想让 Nim 更“Pythonic”。例子:

1) 代替proc, 使用 def

2) 代替echo, 使用print

3) 代替readLine, 使用input

4)代替parseJson使用json.loads

等等。

是的,可能无法更改函数和语句的行为,但我希望它 - 至少 -看起来像“旧的”Python 的。

老实说,请不要向我解释为什么你认为这是一个坏主意。我想玩并尝试一下。没有动物会受到伤害,废话。

有任何想法吗?

谢谢!

0 投票
1 回答
369 浏览

import - FFI 和头文件

这是我的目录结构:

util nim 正在从 lodepng.h 导入 ac 函数,如下所示:

但是头文件没有复制到 nimcache 中,编译代码时也找不到。我如何确保 nim 编译器使用它?

0 投票
1 回答
243 浏览

syntax - Nim:字符串常量前感叹号的含义

阅读宏文档(http://nim-lang.org/docs/macros.html),我遇到了这段代码:

我试图找出感叹号的含义是什么,但在 Nim 文档中找不到任何内容。

"string"那么:Nim和!"string"in Nim有什么区别?

0 投票
1 回答
372 浏览

tuples - 使用不同的元组

使用定义为的类型type BroTuple = distinct tuple[a, b, c: int],我如何:

  • 创建一个新实例(Brotuple()告诉我Error: object constructor needs an object type

  • 访问其字段(proc example(br: BroTuple) = echo br.aError: undeclared field: 'a':)

0 投票
1 回答
1492 浏览

seq - 在 Nim 中清除序列

List.Clear在 java 或 c# 等语言中,序列的 Nim 等价性是什么?我看到系统中列出了 proc setLen,但我不确定它是否符合我的要求。从描述:

f the current length is greater than the new length, s will be truncated. s

这是否意味着每次我将任何 seq len 设置为 0 时,它都会创建一个新的 seq 实例?

0 投票
1 回答
53 浏览

channel - 使用 tryRecv 的编译器错误

我有以下 Nim 程序:

当我尝试编译它时,它给了我这个错误消息:

我不明白错误消息试图告诉我什么......

0 投票
1 回答
374 浏览

garbage-collection - 当我禁用 gc 时出错

当我尝试执行 nim 以在没有垃圾收集器的情况下运行时--gc:none,我收到以下错误消息:

Error: system module needs 'initStackBottomWith'

由于我在手册和 nimc 文档中找到了 0 个引用,这是什么意思,我该如何解决?我试过把所有东西都放在一个主过程中并这样称呼它:

(而且我不知道我还要写什么才能达到 SO 的质量标准)

0 投票
2 回答
599 浏览

macros - Nim 宏参数

这是我要编译的代码:

它完美地工作。我的宏里有我想要的一切我可以用我自己的方式操作员工。

但后来我认为,最好将幻数删除到一些 const 设置:

此代码失败。因为MAGIC_AMOUNT字面上不是整数值,不像42幻数。

那么,如何在 nim 的宏中获取我的变量值?

0 投票
2 回答
584 浏览

performance - 避免 Nim 中的整数溢出

我昨天开始学习 Nim 并决定编写一个小测试来与 Rust 进行性能比较。该代码相当容易编写,并且适用于高达 10^9 的值。但是,我需要至少用 10^12 对其进行测试,这会因为溢出而给出不正确的值,即使在使用 uint 时也是如此。

我一直在尝试对大多数变量进行不同的转换,但似乎无法避免溢出。当然,任何使代码更易于阅读的建议都非常受欢迎!

0 投票
1 回答
94 浏览

reflection - `TAny` 持有的底层类型是否有`is` 功能?

我可以在运行时使用访问对象的字段,TAny并且我知道有.kind,这会给我正确的TAnyKind,但是有没有一种方法可以让我像is运算符一样查询特定的用户定义类型或概念?

喜欢...

或者...

或者还有什么比TAny在这种情况下更好用的东西吗?