问题标签 [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.
python - Nim:我怎样才能让它更接近 Python 语法?
我知道这通常不是一个好主意,但我想让 Nim 更“Pythonic”。例子:
1) 代替proc
, 使用 def
2) 代替echo
, 使用print
3) 代替readLine
, 使用input
4)代替parseJson
使用json.loads
等等。
是的,可能无法更改函数和语句的行为,但我希望它 - 至少 -看起来像“旧的”Python 的。
老实说,请不要向我解释为什么你认为这是一个坏主意。我想玩并尝试一下。没有动物会受到伤害,废话。
有任何想法吗?
谢谢!
import - FFI 和头文件
这是我的目录结构:
util nim 正在从 lodepng.h 导入 ac 函数,如下所示:
但是头文件没有复制到 nimcache 中,编译代码时也找不到。我如何确保 nim 编译器使用它?
syntax - Nim:字符串常量前感叹号的含义
阅读宏文档(http://nim-lang.org/docs/macros.html),我遇到了这段代码:
我试图找出感叹号的含义是什么,但在 Nim 文档中找不到任何内容。
"string"
那么:Nim和!"string"
in Nim有什么区别?
tuples - 使用不同的元组
使用定义为的类型type BroTuple = distinct tuple[a, b, c: int]
,我如何:
创建一个新实例(
Brotuple()
告诉我Error: object constructor needs an object type
)访问其字段(
proc example(br: BroTuple) = echo br.a
说Error: undeclared field: 'a'
:)
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 实例?
channel - 使用 tryRecv 的编译器错误
我有以下 Nim 程序:
当我尝试编译它时,它给了我这个错误消息:
我不明白错误消息试图告诉我什么......
garbage-collection - 当我禁用 gc 时出错
当我尝试执行 nim 以在没有垃圾收集器的情况下运行时--gc:none
,我收到以下错误消息:
Error: system module needs 'initStackBottomWith'
由于我在手册和 nimc 文档中找到了 0 个引用,这是什么意思,我该如何解决?我试过把所有东西都放在一个主过程中并这样称呼它:
(而且我不知道我还要写什么才能达到 SO 的质量标准)
macros - Nim 宏参数
这是我要编译的代码:
它完美地工作。我的宏里有我想要的一切我可以用我自己的方式操作员工。
但后来我认为,最好将幻数删除到一些 const 设置:
此代码失败。因为MAGIC_AMOUNT
字面上不是整数值,不像42
幻数。
那么,如何在 nim 的宏中获取我的变量值?
performance - 避免 Nim 中的整数溢出
我昨天开始学习 Nim 并决定编写一个小测试来与 Rust 进行性能比较。该代码相当容易编写,并且适用于高达 10^9 的值。但是,我需要至少用 10^12 对其进行测试,这会因为溢出而给出不正确的值,即使在使用 uint 时也是如此。
我一直在尝试对大多数变量进行不同的转换,但似乎无法避免溢出。当然,任何使代码更易于阅读的建议都非常受欢迎!
reflection - `TAny` 持有的底层类型是否有`is` 功能?
我可以在运行时使用访问对象的字段,TAny
并且我知道有.kind
,这会给我正确的TAnyKind
,但是有没有一种方法可以让我像is
运算符一样查询特定的用户定义类型或概念?
喜欢...
或者...
或者还有什么比TAny
在这种情况下更好用的东西吗?