第一个程序

我们从一个调整过的"hello world"程序开始:

  1. # 这是注释
  2. echo "What's your name? "
  3. var name: string = readLine(stdin)
  4. echo "Hi, ", name, "!"

保存到文件"greetings.nim",编译运行:

nim compile —run greetings.nim

—runswitch Nim在编译之后自动执行文件。你可以在文件名后给程序追加命令行参数nim compile —run greetings.nim arg1 arg2

经常使用的命令和开关有缩写,所以你可以用:

  1. nim c -r greetings.nim

编译发布版使用:

  1. nim c -d:release greetings.nim

Nim编译器默认生成大量运行时检查,旨在方便调试。用 -d:release关闭一些检查并且打开优化 。 (译者注,-d:release的功能在最近的版本已经发生变化,现在会打开运行时检查,使用-d:danger来替代,以生成更好性能的代码)

程序的作用显而易见,需要解释下语法:没有缩进的语句会在程序开始时执行。缩进是Nim语句进行分组的方式。缩进仅允许空格,不允许制表符。

字符串字面值用双引号括起来。 var 语句声明一个新的名为 name ,类型为 string ,值为 readLine 方法返回值的变量名。 因为编译器知道 readLine 返回一个字符串,你可以省略声明中的类型(这叫作 局部类型推导 )。所以也可以这样:

  1. var name = readLine(stdin)

请注意,这基本上是Nim中存在的唯一类型推导形式:兼顾简洁与可读。

"hello world"程序包括一些编译器已知的标识符: echoreadLine 等。这些内置声名在 system模块中,system 模块通过其它模块隐式的导出。