nim教程
文章平均质量分 85
big_big_snail
这个作者很懒,什么都没留下…
展开
-
开始使用Nim
原文:https://akehrer.github.io/nim/2015/01/05/getting-started-with-nim.html 作为使用很长时间python的用户,我经常发现自己正在向超过语言的方向走。当我在Hacker News上看到Nim版本0.10.2发布的消息时,它引起了我学其他语言的兴趣,特别是编译到c 和可执行文件的语言。我有一些用翻译 2015-06-02 21:28:18 · 1100 阅读 · 0 评论 -
Nim 中的参数传递
Var parameters在 Nim 中过程或方法有两种参数类型,一种是前面有 var 关键字 的参数,另一种是不带 var 的参数。例如:proc divmod(a, b: int; res, remainder: var int) = res = a div b remainder = a mod bvar x, y: intdivmod(8,原创 2015-09-24 15:39:27 · 597 阅读 · 0 评论 -
浅谈 Nim 中的“接口”
本篇文章是作者在看Nim 标准库源码发现的,在Nim 官网的教程和手册上没有找到有关说明,“接口” 这个说法是从Java类比过来的,现在还不能确定Nim 的定义。 下面是我写的一段代码:type Person* = object of RootObj speak*: proc (p: Person) eat*: proc (p: Person)pr原创 2015-11-30 22:08:51 · 855 阅读 · 0 评论 -
nim中的命令行参数
在使用该命令nim c -r test.nim arg1 arg2编译运行nim程序时,可以在文件名的后面加上命令行参数,我们来看看在程序中该怎样使用该命令行参数。原创 2015-12-02 09:17:26 · 1494 阅读 · 0 评论 -
Nim 中的 streams 模块
streams 模块是 Nim\lib\pure\streams.nim 文件,该模块提供了一个流接口和两个实现,一个是字符串流`StringStream`,一个是文件流`FileStream`。很显然字符串流是通过字符串来实现 stream接口的,文件流是通过 Nim中的”File" 对象来实现的。下面先看一个例子:import streamsvar ss = newStringSt原创 2015-12-01 16:31:54 · 684 阅读 · 0 评论 -
改变Nim 标准库中streams 模块里的readInt 系列过程
本篇博文是修改Nim 标准库中的readInt 系列过程代码。实现的功能是从键盘输入数字,接收到的也是整型数字。如果对 streams 模块和readInt 过程还不熟悉,可以看看我之前的文章。当然从键盘上输入数字得到整型有其他的方法,下面的代码是使用Nim提供的文件流来实现的。 ##注意 由于过程 flush() 在Linux 下好像没有作用,若用Linux测试该代码,则调用readI原创 2015-12-03 17:26:27 · 545 阅读 · 0 评论 -
Nim语言中的解析表达文法 pegs模块
Pegs 模块简单的PEG(解析表达文法)匹配。没有使用任何记忆,而是用superoperators和符号内联来提升性能。注意:PEG匹配性能是希望与正则表达式引擎竞争的。PEG的语法和语义一个PEG(解析表达文法)是一个简单的确定性的语法,它可以直接用于解析。当前的实现已经被设计为一个更强大的来替代正则表达式。UTF-8是支持的。用于PEG的符号与EBNF(扩展巴科斯范式)是相似的。原创 2016-01-24 11:24:51 · 1411 阅读 · 0 评论 -
Nim教程翻译(一)
原文链接:http://nim-lang.org/docs/tut1.htmlNim是一种静态类型、命令式的系统级编程语言,其作者是Andreas Rumpf,最新版本是0.11.0。Nim的语法受到了Python和Pascal的启发,其主要特性包括编译到C的原生代码生成,不依赖于虚拟机;非跟踪垃圾收集器;跨模块内联;编译器和标准库都用Nim实现;强大的元编程能力,等等。翻译 2015-06-03 08:20:14 · 4424 阅读 · 1 评论 -
Nim 中的引用和指针
引用和指针 引用是介绍多对一关系的一种方式。这意味着不同的引用可以指向和修改相同的内存单元。在Nim中分为跟踪引用和非跟踪引用(反跟踪)。非跟踪引用也叫做指针。跟踪引用指向一个垃圾收集堆上的对象,反跟踪指向手动分配的对象或内存中其他地方的对象。因此反跟踪引用是不安全的。然而对于某些低级操作(访问硬件)反跟踪引用是不可避免的。 引用用 ref 关键字声明,指针用 ptr 关键原创 2015-09-17 18:11:17 · 571 阅读 · 0 评论 -
Nim-字符串编码转换
Nim中对字符串进行转码需要用到encodings模块。encodings模块:procgetCurrentEncoding():string{.raises:[],tags:[].}proc getCurrentEncoding():string {.raises: [],tags: [].}#检索当前系统编码,在UNIX上,总是返原创 2015-08-20 21:25:08 · 1080 阅读 · 1 评论 -
开始使用Nim(二)
原文:https://akehrer.github.io/nim/2015/01/14/getting-started-with-nim-pt2.html 上一次写了关于我学习Nim的兴趣为了增强我的技能,并且以创建一个简单的统计模块开始。我们跳过了一些的学习语言的细微差别,以建立一个高斯分布模型为开始。今天我们来看看一些事情,我发现我弄懂了在模块中的其他一些过程。翻译 2015-06-05 15:33:30 · 887 阅读 · 0 评论 -
Nim连接到Python
原文:https://akehrer.github.io/nim/2015/01/24/connecting-nim-to-python.html在以前的文章中在最后询问了关于Nim连接Python接口的代码,在经过一些实验后我能够做一些工作了。所以,让我们一起看一看。Compiling a library首先我们要谈到的是Nim 编译器。在大多数情况下你把翻译 2015-06-07 19:23:05 · 1343 阅读 · 1 评论 -
nim和面向对象(二)
Nim and OO, Part II原文链接:http://goran.krampe.se/2014/10/31/nim-and-oo-part-ii/作者:Roads Less TakenA blend of programming, boats and life.时间:2014.10.31在前一篇文章中,当我探索在nim中的面向对象时,在我的Fruit翻译 2015-07-12 09:24:21 · 819 阅读 · 0 评论 -
Nim教程翻译(二)
原文地址:http://nim-lang.org/docs/tut1.htmlNim教程翻译(一)地址:注:本文与Nim教程翻译(一)都属于Nim Tutorial(Part I)中的内容!迭代器让我们回到无聊的计数实例:echo("Counting to ten: ")for i in countup(1, 10): echo($i)可以翻译 2015-06-03 18:51:39 · 2163 阅读 · 0 评论 -
Nim-- 处理Unicode 、 UTF-8编码
xunicode 模块提供支持处理Unicode、 utf - 8编码。更多内容可以看unicode源文件,==》C:\Nim\lib\pure。type RuneImpl = int Rune* = distinct RuneImpl ##可以容纳任何 Unicode 字符 类型。 Rune16* = distinc原创 2015-08-22 01:58:41 · 2204 阅读 · 2 评论 -
Nim中文件IO
打开文件模式:fileMode = enum fmRead, #打开文件,只读 fmWrite, #打开文件,只写 fmReadWrite, #打开文件,读或写,如果该文件不存在,则创建文件 fmReadWriteExisting,原创 2015-08-09 18:04:58 · 991 阅读 · 2 评论 -
Nim教程翻译(三)
原文链接:http://nim-lang.org/docs/tut2.htmlNim Tutorial (Part II)作者:Andreas Rumpf版本:0.11.2介绍"Repetition renders the ridiculous reasonable." -- Norman Wildberger“重复使荒谬的合理。”--Norman翻译 2015-06-04 09:40:12 · 2730 阅读 · 1 评论 -
论Nim中的 proc 和 method
在Nim中,proc 是定义过程的关键字,method 是定义方法的关键字。它们之间根本的区别是proc定义的过程是静态绑定,method定义的方法是动态绑定。谈到静态绑定、动态绑定又会提到重载、重写和多态等方面的内容,如果对上述的一些概念不太理解,可以看我的上一篇博文。过程的重载:proc print (): void = echo ("This is empty")原创 2015-07-16 15:30:23 · 1193 阅读 · 2 评论 -
Nim 网络编程
在Nim中提供socket编程的有两个模块:nativesockets和net。 nativesockets实现的是低级的socket接口,而net则是高级的实现。 关于socket相关的知识在以前的文章:Linux程序设计--套接字学习笔记 中已经讲过,这里就不在赘述。 关于跟多的Nim知识你也可以看github仓库:https://github.co原创 2016-03-07 15:31:17 · 841 阅读 · 0 评论