
Nim
回归心灵
这个作者很懒,什么都没留下…
展开
-
开始使用Nim
原文:https://akehrer.github.io/nim/2015/01/05/getting-started-with-nim.html 作为使用很长时间python的用户,我发现Python已经不能满足我的需求了。当我在Hacker News上看到Nim版本0.10.2发布的消息时,它引起了我学其他语言的兴趣,特别是编译到c 和可执行翻译 2015-07-16 09:24:48 · 818 阅读 · 0 评论 -
Nim程序:使用默认浏览器打开一个网址
Nim提供了一个browsers模块,该模块现在的功能还是较弱,本篇文章要讲的是怎么实现用默认浏览器打开一个URL。这个是比较简单的,下面直接看代码。import browsersopenDefaultBrowser("https://github.com/ByrsH") 程序开始部分导入browsers包,然后使用过程openDefaultBrowser来打开URL。怎么样是不是原创 2016-03-12 15:40:33 · 538 阅读 · 0 评论 -
Nim网络编程
在Nim中提供socket编程的有两个模块:nativesockets和net。 nativesockets实现的是低级的socket接口,而net则是高级的实现。 关于socket相关的知识在以前的文章:Linux程序设计--套接字学习笔记 中已经讲过,这里就不在赘述。 关于跟多的Nim知识你也可以看github仓库:https://github.com/ScxMes/Cor原创 2016-03-07 12:12:04 · 1080 阅读 · 0 评论 -
在windows系统上,给Nim程序加上图标
我们可以对Nim在windows下生成的可执行文件加上图标,具体的步骤如下:一, 下载MinGW 首先我们需要MinGW,如果你的机器上没有就需要下载它。这里需要注意的是,要下载与操作系统位数对应的MinGW。如果你的机器上安装有Dev-C++等IDE,在其安装目录下含有MinGW。然后把路径 path/MinGW/bin 加入环境变量。二,图标原创 2016-03-03 21:43:15 · 575 阅读 · 0 评论 -
Nim语言中的解析表达文法 pegs模块
Pegs 模块简单的PEG(解析表达文法)匹配。没有使用任何记忆,而是用superoperators和符号内联来提升性能。注意:PEG匹配性能是希望与正则表达式引擎竞争的。PEG的语法和语义一个PEG(解析表达文法)是一个简单的确定性的语法,它可以直接用于解析。当前的实现已经被设计为一个更强大的来替代正则表达式。UTF-8是支持的。用于PEG的符号与EBNF(扩展巴科斯范式)是相似的。原创 2016-01-24 11:21:45 · 1589 阅读 · 2 评论 -
改变Nim 标准库中streams 模块里的readInt 系列过程
本篇博文是修改Nim 标准库中的readInt 系列过程代码。实现的功能是从键盘输入数字,接收到的也是整型数字。如果对 streams 模块和readInt 过程还不熟悉,可以看看我之前的文章。当然从键盘上输入数字得到整型有其他的方法,下面的代码是使用Nim提供的文件流来实现的。 ##注意 由于过程 flush() 在Linux 下好像没有作用,若用Linux测试该代码,则调用rea原创 2015-12-03 17:18:31 · 418 阅读 · 0 评论 -
Nim 中的 streams 模块
streams 模块是 Nim\lib\pure\streams.nim 文件,该模块提供了一个流接口和两个实现,一个是字符串流`StringStream`,一个是文件流`FileStream`。很显然字符串流是通过字符串来实现 stream接口的,文件流是通过 Nim中的”File" 对象来实现的。下面先看一个例子:import streamsvar ss = newStringS原创 2015-12-01 16:28:31 · 413 阅读 · 0 评论 -
浅谈 Nim 中的“接口”
本篇文章是作者在看Nim 标准库源码发现的,在Nim 官网的教程和手册上没有找到有关说明,“接口” 这个说法是从Java类比过来的,现在还不能确定Nim 的定义。 下面是我写的一段代码:type Person* = object of RootObj speak*: proc (p: Person) eat*: proc (p: Person)pr原创 2015-11-30 22:07:43 · 918 阅读 · 0 评论 -
Nim 中的参数传递
在Nim 中过程或方法的参数类型有两种,一种是参数类型前面带 var 关键字,另一种是没有 var 关键字。proc divmod(a, b: int; res, remainder: var int) = res = a div b remainder = a mod bvar x, y: intdivmod(8, 5, x, y) # modifies x and原创 2015-09-24 15:36:46 · 502 阅读 · 0 评论 -
Nim 中的引用和指针
引用和指针 引用是介绍多对一关系的一种方式。这意味着不同的引用可以指向和修改相同的内存单元。在Nim中分为跟踪引用和非跟踪引用(反跟踪)。非跟踪引用也叫做指针。跟踪引用指向一个垃圾收集堆上的对象,反跟踪指向手动分配的对象或内存中其他地方的对象。因此反跟踪引用是不安全的。然而对于某些低级操作(访问硬件)反跟踪引用是不可避免的。 引用用 ref 关键字声明,指针用 p原创 2015-09-17 17:54:55 · 586 阅读 · 0 评论 -
Nim--处理Unicode 、 UTF-8编码
unicode 模块提供支持处理Unicode、 utf - 8编码。更多内容可以看unicode源文件,==》C:\Nim\lib\pure。type RuneImpl = int Rune* = distinct RuneImpl Rune* =distinct RuneImpl原创 2015-08-22 01:54:48 · 679 阅读 · 0 评论 -
Nim--字符串编码转换
Nim中对字符串进行转码需要用到encodings模块。encodings模块:proc getCurrentEncoding():string {.raises: [],tags: [].}#检索当前系统编码,在UNIX上,总是返回“UTF-8”。proc open(destEncoding = "UTF-8"; srcEncoding = "CP1252原创 2015-08-20 21:29:06 · 494 阅读 · 0 评论 -
论Nim中的 proc 和 method
在Nim中,proc 是定义过程的关键字,method 是定义方法的关键字。它们之间根本的区别是proc定义的过程是静态绑定,method定义的方法是动态绑定。谈到静态绑定、动态绑定又会提到重载、重写和多态等方面的内容,如果对上述的一些概念不太理解,可以看我的上一篇博文。过程的重载:proc print (): void = echo ("This原创 2015-07-16 15:53:17 · 672 阅读 · 0 评论 -
Nim中文件IO
打开文件模式:fileMode = enum fmRead, #打开文件,只读 fmWrite, #打开文件,只写 fmReadWrite, #打开文件,读或写,如果该文件不存在,则创建文件 fmReadWriteExisting,原创 2015-08-09 18:07:26 · 805 阅读 · 0 评论 -
开始使用Nim(二)
原文:https://akehrer.github.io/nim/2015/01/14/getting-started-with-nim-pt2.html 上一次写了关于我学习Nim的兴趣为了增强我的技能,并且以创建一个简单的统计模块开始。我们跳过了一些的学习语言的细微差别,以建立一个高斯分布模型为开始。今天我们来看看一些事情,我发现我弄懂了在模块中翻译 2015-07-16 09:28:06 · 485 阅读 · 0 评论 -
Nim连接到Python
原文:https://akehrer.github.io/nim/2015/01/24/connecting-nim-to-python.html 在以前的文章中在最后询问了关于Nim连接Python接口的代码,在经过一些实验后我能够做一些工作了。所以,让我们一起看一看。Compiling a library翻译 2015-07-16 09:29:58 · 984 阅读 · 0 评论 -
Nim代码覆盖率
该文为Nim语言核心贡献着Dennis的博客,网址:https://hookrace.net/blog/nim-code-coverage用Nim创建代码覆盖率是非常容易的。你可以简单的使用古老而好用的gcov和lcov工具。Nim在编译时可以插入一个命令行参数: –debugger:native。我们一起来看下面这个简单的例子: var x = 0 if x > 1:翻译 2016-11-06 18:32:05 · 411 阅读 · 0 评论