Nim教程【一】】的更多相关文章

网友@沉没捕鱼,赞助了一台服务器 这个系列的教程写完之后,我们就要开始着手搭建Nim的社区了~ 异常 Nim中的异常类型是对象类型 根据惯例,Nim中的异常类型的命名都应该以Error后缀结尾 在system模块中定义了异常类型的基类 所有的异常都应该派生自system.Exception类型 由于我们不清楚异常对象的生命周期, 所以必须在内存堆上为异常的实例分配空间 编译器不允许开发人员在栈上为异常分配空间 你如果想抛出一个异常,你必须为这个异常的msg属性赋值 按照约定,只有在非常特殊的情况…
这是国内第一个关于Nim的系列教程 先说废话 很开心,在今天凌晨快一点多的时候拿到了 nim-lang.com:nim-lang.cn:nim-lang.net 这三个域名,到不是为了投资,准备用nim-lang.com做一个社区出来 不知道国内有没有人或者机构打算赞助这个事情的 整型 Nim语言中有10个整型类型 int;int8;int16;int32;int64;uint;uint8;uint16;uint32;uint64 默认的整型类型是int 可以使用尾缀的方式来设置整型的类型,就像…
目前看来这是国内第一个关于Nim的系列教程 先说废话 Rust1.0已经发布了, 国内有一个人为这个事情写了一篇非常长的博客, 这篇文章我前几天草草的看了一下,只记得这位朋友追Rust的艰辛,其他内容都已经记不清楚了 我觉得,任何正向付出都是值得鼓励和尊敬的, 这节不对其他语言做任何吐槽 就吐槽Nim本身, Nim这个语言之前叫做Nimrod,意思是猎人, 是一个圣经里的人物,曾经做过国王,大概是英勇善战.威风八面的人物吧 关键是Nimrod这个单词的读音:['nɪmrɒd] 真是叫人担心啊,居…
这应该是国内第一个关于Nim入门的系列教程 什么是Nim 我们先来引述网友 Luikore的一段话: Nim 不是函数式的, 但 Nim 支持卫生宏, 可以做 AST 重写, 可以自定编译规则, 是静态语言中的黑客语言有木有!  自定编译规则甚至可以编译出比 C 代码还快的结果, 作为 a better C 当之无愧.  人家 GC 可以手动步进的啊, 想要什么 feature 自己加(list comprehension? 没问题),  加个 const 就可以做编译期计算了(想想 C++ 和…
妈蛋,花了两天时间才搞定博客园的API, 比预期的时间整整多了1天, 不管怎么说,总算把博客园的客户端搞定了 这篇文章就是用博客园的客户端发布的, 先贴张图,给大家看看, 后面我会和博客园的领导商量一下,看看能不能发出来 (当然,如果能的话,我肯定会开源) (这个图片是直接黏贴上传的哦!) ------------------------------ 这是国内第一个关于Nim的系列教程 先说废话 业内的人认为能够直接操作系统硬件的语言才称得上系统级的编程语言 常见的系统级编程语言有:汇编.C.C…
这是国内第一个关于Nim的系列教程 先说废话 不得不说Rust也是门不错的语言,园子里 有人曾经说: Rust语言除了library或keyword缩写比较恶心以外其他所有地方完爆go 还有人曾这样评价Rust语言 Rust 可以说是 D 语言二代目,  没有 D 里的一些经验主义设计,  而且更函数式,  作为 a better C++ 当之无愧.  Pattern matching, Block, Generic 这些东西, Go 有么?  不好的地方是集成 feature 略贪心,  指针…
这是国内第一个关于Nim的系列教程 (至少我百度和必应是没有找到类似的教程) 先说废话 有人说 Golang的编译器/工具链也学互联网行业跟风拿用户当测试,简直一点素质没有. 还有人说 Go社区的风气不是很好,发布半成品成风. 也许有人会说因为Go社区还年轻,但是Node社区也很年轻,虽然很多库功能很弱,但是完成了的功能都是比较完备的. 我就啥也不说了,免得被炮火波及,哈哈! (不管怎么说,我昨天跑到go社区的QQ群里去推Nim,至少是没有被踢掉的,哈哈,而且还有一个人表示对Nim感兴趣) 言归…
第一篇教程1秒内就被管理员从首页踢掉了 管理员嫌内容太少,没有含金量,这次多写一些. 这应该是国内第一个关于Nim入门的系列教程 好,闲话休提,言归正传 Nim介绍 Nim代码会编译成C语言的代码,再编译成本地机器码,不依赖于虚拟机, 而且生成的可执行文件比较小,不依赖于其他库,分发起来比较方便 拥有一个“非追踪式”的垃圾收集器,这就非常适用于类似游戏这样的“弱实时”系统 让程序员拥有直接操纵内存和访问硬件的权力(手动管理的内存有别于垃圾收集器可收集的内存) 零开销的迭代器 Cross-modu…
模版 模版是Nim语言中的抽象语法树,它是一种简单的替换机制,在编译期被处理 这个特性使Nim语言可以和C语言很好的运行在一起 像调用一个方法一样调用一个模版 请看如下代码: template `!=` (a, b: expr): expr =   # this definition exists in the System module   not (a == b) assert(5 != 6) # the compiler rewrites that to: assert(not (5 ==…
排除指定符号 一般情况下使用import语句,会把一个模块内的符号都导入进来 如果你像排除特定的符号(不想让某些符号被导入进来) 可以使用except子句 就像下面这样 import mymodule except y 这行代码排除了mymodule模块中的y符号,其他符号都导入了 如果想排除更多的符号,可以使用逗号分割 导入指定符号 我们还可以使用from语句来导入指定的符号 请看下面的代码: from mymodule import x, y, z 上面的代码中,只导入了mymodule模块…