这应该是国内第一个关于Nim入门的系列教程
什么是Nim

我们先来引述网友
Luikore的一段话:
Nim 不是函数式的, 但 Nim 支持卫生宏, 可以做 AST 重写, 可以自定编译规则, 是静态语言中的黑客语言有木有! 
自定编译规则甚至可以编译出比 C 代码还快的结果, 作为 a better C 当之无愧. 
人家 GC 可以手动步进的啊, 想要什么 feature 自己加(list comprehension? 没问题), 
加个 const 就可以做编译期计算了(想想 C++ 和 D 里复杂难以掌握的 template 和 static if 多蛋疼), 
改写 AST 的 pattern language 也是简单易懂(想想 Java 的 annotation processing tool 怎么用的就蛋碎...), 
更重要的一点: 没有那么多哲学骑着你禁止你怎么怎么做, Go 能么?


官网介绍性文字的翻译(大概意思的翻译)
Nim(原名叫做"Nimrod"),是静态类型、命令式的编程语言。
Nim团队在编译期做了很多工作,
造就了Nim在不损失执行性能的前提下,提升程序员的编程效率

Nim有一个强大的,基于AST的宏机制;Nim在本地线程上有一个强大的实时垃圾收集机制;线程之间可以通过异步消息机制通讯;为了提供执行效率,Nim还提供了一个不安全的共享内存区。

安装Nim


先在
这里下载Nim开发环境的安装包
目前官网还只提供了windows平台下Nim开发环境的安装包
对于linux平台,需要自己下载,自己编译,
不过还是很简单的,因为Nim团队已经写好了编译用的python脚本

在windows上安装的时候,
有三个选项,其中MingW是必要的,
你自己没有安装的话,一定要勾选


第一个程序


打开我们的IDE,
Aporia本身就是用Nim语言开发的程序,有着色功能,但没有智能提示
当然,你也可以用记事本或其他IDE来写Nim程序

输入以下代码:
echo("Hello World!!! What's your name? ")
var name: string = readLine(stdin)
echo("Hi, ", name, "!")
var b:string = readLine(stdin)

保存成以.nim为扩展名的程序
然后点击Tools->Compile Curent Files;或者直接按快捷键F4
用不了1秒钟,就会在程序所在路径下生成了同名的可执行程序
执行一下程序,看看结果:

喜欢请点推荐

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

  1. Nim教程【十四】

    网友@沉没捕鱼,赞助了一台服务器 这个系列的教程写完之后,我们就要开始着手搭建Nim的社区了~ 异常 Nim中的异常类型是对象类型 根据惯例,Nim中的异常类型的命名都应该以Error后缀结尾 在sy ...

  2. Nim教程【七】

    这是国内第一个关于Nim的系列教程 先说废话 很开心,在今天凌晨快一点多的时候拿到了 nim-lang.com:nim-lang.cn:nim-lang.net 这三个域名,到不是为了投资,准备用ni ...

  3. Nim教程【六】

    目前看来这是国内第一个关于Nim的系列教程 先说废话 Rust1.0已经发布了, 国内有一个人为这个事情写了一篇非常长的博客, 这篇文章我前几天草草的看了一下,只记得这位朋友追Rust的艰辛,其他内容 ...

  4. Nim教程【五】

    妈蛋,花了两天时间才搞定博客园的API, 比预期的时间整整多了1天, 不管怎么说,总算把博客园的客户端搞定了 这篇文章就是用博客园的客户端发布的, 先贴张图,给大家看看, 后面我会和博客园的领导商量一 ...

  5. Nim教程【四】

    这是国内第一个关于Nim的系列教程 先说废话 不得不说Rust也是门不错的语言,园子里 有人曾经说: Rust语言除了library或keyword缩写比较恶心以外其他所有地方完爆go 还有人曾这样评 ...

  6. Nim教程【三】

    这是国内第一个关于Nim的系列教程 (至少我百度和必应是没有找到类似的教程) 先说废话 有人说 Golang的编译器/工具链也学互联网行业跟风拿用户当测试,简直一点素质没有. 还有人说 Go社区的风气 ...

  7. Nim教程【二】

    第一篇教程1秒内就被管理员从首页踢掉了 管理员嫌内容太少,没有含金量,这次多写一些. 这应该是国内第一个关于Nim入门的系列教程 好,闲话休提,言归正传 Nim介绍 Nim代码会编译成C语言的代码,再 ...

  8. Nim教程【十五】【完结】

    模版 模版是Nim语言中的抽象语法树,它是一种简单的替换机制,在编译期被处理 这个特性使Nim语言可以和C语言很好的运行在一起 像调用一个方法一样调用一个模版 请看如下代码: template `!= ...

  9. Nim教程【十二】

    排除指定符号 一般情况下使用import语句,会把一个模块内的符号都导入进来 如果你像排除特定的符号(不想让某些符号被导入进来) 可以使用except子句 就像下面这样 import mymodule ...

随机推荐

  1. django中的静态文件管理

    一个站点通常需要保存额外的文件,比如图片   css样式文件   js脚本文件 ,在django中,倾向于将这些文件称为 静态文件.django提供了django.contrib.staticfile ...

  2. Eclipse相关设置

    eclipse 默认设置的换行长度, 格式化代码后,同一个方法里面参数也经常被,换行,非常难看. 1.Java代码打开Eclipse的Window菜单,然后 Preferences->Java- ...

  3. Icinga快速安装与配置

    Icinga快速安装与配置/* body */body { margin: 20px; padding: 0; font-family: "Lucida Grande", &quo ...

  4. Linux(centos)系统各个目录的作用详解

    Linux(centos)系统各个目录的作用详解 文件系统的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码 ...

  5. redis cluster搭建

    一 .准备文件: Ruby :http://www.ruby-lang.org/en/downloads/    redis-3.0.5.tar.gz Redis:http://www.redis.c ...

  6. android笔记:Notification通知的使用

    通知(Notification),当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现. 发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后 ...

  7. java 小知识

    public static void main(String[] args) { System.out.println( getMonthStart()); System.out.println( g ...

  8. Java Web的开始学习

    今天开始学习Web了,需要的前提技能是  XML ,我还不太熟悉,今天的任务需要熟悉一下 XML-- 输入输出流  I/O     序列化反序列化,也需要看一下,我看这两块会有用到. 任务: ---- ...

  9. Spring配置数据源的几种形式

    Spring中提供了4种不同形式的数据源配置方式: 1.Spring自带的数据源(DriverMangerDataSource); 2.DBCP数据源; 3.C3P0数据源; 4.JNDI数据源. 以 ...

  10. AngularJS学习--- AngularJS中的模板template和迭代器过滤filter step2 step3

    1.AngularJS 模板---step2: mvc(Model-View-Controller)模式在后端用的比较多,在前端也是一样的常用; 在AngularJS中,一个视图是模型通过HTML模板 ...