nim-lang相关内容
我最近一直在使用模板和宏,但我不得不说我几乎没有找到关于这些重要类型的信息.这是我肤浅的理解: typed/expr 是之前必须存在的东西,但您可以使用 .immediate.克服它们. untyped/stmt 是之前没有定义的东西/一个或多个语句. 这是一个非常模糊的类型概念.我想对它们有更好的解释,包括哪些类型应该用作返回. 解决方案 这些不同参数类型的目标是在指定编译
..
我在定义包含 auto 类型的概念时遇到问题.看起来 Nim 在抱怨 type T = auto 变成了 untyped. 这是一个最小的例子(在这里在线运行)基本上取自来自文档): 导入糖,typetraits类型函子[A] {.explain.} = 概念 f类型 MatchedGenericType = genericHead(typeof(f))# `f` 将是一个类型的值,例如
..
我正在尝试创建一个 proc 返回一个自定义元组,该元组包含一个 proc 类型的单个元素,即 类型自定义元组 = 元组foo: proc(input: int): intproc createCustomTuple(): CustomTuple =(foo: proc(input: int): int = 10) 但是,当我编译它时,我收到以下错误(我在 Windows 上使用 Nim 1.
..
我试图制作一个创建迭代器的过程,如下所示: proc makeCDFrom(start: int): iterator(): int = result = iterator(): int = var i: int = start while i >= 0: echo "i:", i yield(i) dec(i) let
..
寻找一种使用Nim编程语言(版本0.11.2)从tar.gz存档中读取文件的方法.说我有一个档案 /my/path/to/archive.tar.gz 和该存档中的文件 my/path/to/archive/file.txt 我的目标是能够在Nim中逐行读取文件的内容.在Python中,我可以使用tarfile模块来执行此操作.在Nim中,有libzip和zlib模块,但是文档
..
所以我知道,如果我定义一个 const Nim会在编译时评估分配给它的任何内容,因此我可以执行以下操作: proc compileTimeCode:bool = #将代码放在此处 返回true const _ = compileTimeCode () 然后我可以将代码放入 compileTimeCode 过程。 此方法有效,但看起来很杂乱,过于复杂且不直
..
我正在尝试使用一个非常简单的程序来播放wav文件,该程序看起来像这样,目前正在尝试使用import csfml_audio var alarmsong = newMusic("alarm.wav") alarmsong.play() ,但是它似乎依赖于libcsfml.audi o的存在,虽然我的程序编译得很好,但是当我尝试实际运行它时却出现了错误 | => ./alarm could
..
如果我想制作一个可以接受2个无类型参数的模板,并通过 do 标记传递它们,当我省略第二个 do 时,我想有一种方法可以以参数默认值的形式指定回退。像这样: template tpl(x:bool,body:untyped,bodyFinally:untyped):void = if x:body else:bodyFinally #call site: var r:int
..
var b: array[5, int] type ArrRef = ref array[5, int] var c : ArrRef echo repr(c) # nil c = addr b # doesn't compile, says type is Array constructor, expected reference 在Nim中,如何将引用传递给数组而不是按值传递?
..
我正在努力确定Nim在expression has no address之后的政策.特别是,我有一个C函数,该函数接受某个数据缓冲区的指针(+长度等).我知道此功能将不修改数据.简化: type Buffer = object data: seq[float] proc wrapperForCCall(buf: Buffer) = # accessing either bu
..
通过 Nimrod教程的第二部分,我已经到达了解释宏的部分.文档说它们在编译时运行,所以我认为我可以对字符串进行一些解析以创建属于自己的领域特定语言.但是,没有有关如何执行此操作的示例,调试宏示例却没有不会显示如何处理字符串参数. 我想转换如下代码: instantiate(""" height,f,132.4 weight,f,75.0 age,i,25
..
在Nim中,要编写作为某种主要功能执行的代码,您可以这样做(类似于Python中的main检查): when isMainModule: echo ("Hello, Nim!") 但是,对于我自己的一生,我不知道如何返回错误代码.传统上,总是有一个使主函数返回int的选项,但是由于它实际上不在proc中,因此似乎您不能return;因此,您可以将其返回.我唯一想出的方法是rais
..
我最近一直在使用模板和宏,但是我不得不说我几乎没有找到有关这些重要类型的信息.这是我的肤浅理解: typed/expr是以前必须存在的东西,但是您可以使用.immediate.克服它们. 未类型化/stmt是以前未定义的/一个或多个语句. 这是一个非常模糊的类型概念.我想对它们进行更好的解释,包括应将哪些类型用作返回值. 解决方案 这些不同参数类型的目标是使您在指定编译器应作
..