这应该是国内第一个关于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. uniDBGrid导入数据库(转红鱼儿)

    有朋友问如何将excel导入数据库,这是我做的uniGUI项目中代码,实现uniDBGrid导入数据库的函数,因为用了kbmMW,所以你看到是将uniDBGrid导入kbmMWClientQuery, ...

  2. solr 5.5.1安装并配置中文分词IKAnalyzer

    http://www.360doc.com/content/16/0623/17/5131531_570184594.shtml ——————————————————————————————————— ...

  3. CSS-页面布局

    介绍 几个实现多栏布局的方法.主要介绍使用内部div来创建浮动的栏. 多栏布局有三种基本的实现方案:固定宽度.流动.弹性. 固定宽度布局的大小是随用户调整浏览器窗口大小而变化,一般是900至1100像 ...

  4. Delphi 7学习开发控件

    我们知道使用Delphi快速开发,很大的一方面就是其强大的VCL控件,另外丰富的第三方控件也使得Delphi程序员更加快速的开发出所需要的程序.在此不特别介绍一些概念,只记录自己学习开发控件的步骤.假 ...

  5. Spring----->projects----->Spring Boot

    1.概述:(about Spring Boot) Spring boot是在spring framework的基础上搭建起来的一个基本项目,该项目中已经集成了spring框架下的若干模块以及sprin ...

  6. java.io.Serializable 序列化问题

    java.io.Serializable 序列化问题 Person.java package a.b.c; public class Person implements java.io.Seriali ...

  7. POJ 1511 - Invitation Cards 邻接表 Dijkstra堆优化

    昨天的题太水了,堆优化跑的不爽,今天换了一个题,1000000个点,1000000条边= = 试一试邻接表 写的过程中遇到了一些问题,由于习惯于把数据结构封装在 struct 里,结果 int [10 ...

  8. CSS3--选择器

    子元素选择器: div>p{background:yellow:} 相邻的后兄弟选择器(必须相邻) h1+p{padding-top:20px:} 后兄弟选择器(同级的当前元素后面的元素) di ...

  9. mysql提示2002错误的解决方法

    前两天,负责的一个项目出现问题,总是提示"SQLSTATE[HY000] [2002] 由于目标计算机积极拒绝,无法连接",由于负责服务器的同事联系不到,我无法登陆服务器查看原因, ...

  10. linux增加用户并赋予权限/用户和用户组操作命令

    ===============ubuntu================================================== 在Ubuntu13.10下创建一个新的用户:Step1: ...