第一个程序
我们从一个调整过的"hello world"程序开始:
- # 这是注释
- echo "What's your name? "
- var name: string = readLine(stdin)
- echo "Hi, ", name, "!"
保存到文件"greetings.nim",编译运行:
nim compile —run greetings.nim
用 —runswitch Nim在编译之后自动执行文件。你可以在文件名后给程序追加命令行参数nim compile —run greetings.nim arg1 arg2
经常使用的命令和开关有缩写,所以你可以用:
- nim c -r greetings.nim
编译发布版使用:
- nim c -d:release greetings.nim
Nim编译器默认生成大量运行时检查,旨在方便调试。用 -d:release关闭一些检查并且打开优化 。 (译者注,-d:release的功能在最近的版本已经发生变化,现在会打开运行时检查,使用-d:danger来替代,以生成更好性能的代码)
程序的作用显而易见,需要解释下语法:没有缩进的语句会在程序开始时执行。缩进是Nim语句进行分组的方式。缩进仅允许空格,不允许制表符。
字符串字面值用双引号括起来。 var 语句声明一个新的名为 name ,类型为 string ,值为 readLine 方法返回值的变量名。 因为编译器知道 readLine 返回一个字符串,你可以省略声明中的类型(这叫作 局部类型推导 )。所以也可以这样:
- var name = readLine(stdin)
请注意,这基本上是Nim中存在的唯一类型推导形式:兼顾简洁与可读。
"hello world"程序包括一些编译器已知的标识符: echo , readLine 等。这些内置声名在 system模块中,system 模块通过其它模块隐式的导出。