Nim-hello world
Nim - Hello world!
这段时间一直在玩Haskell, 有点小腻。换个编程语言看看调节一下口味,本系列是对官方文档《 Tutorial, part 1》《 Tutorial, part 2》和《Tutorial, part 3》三部曲进行学习,然后增加了本人的一些思索过程,可全当作是官方学习手册的汉化版本。
话不多说,我们直接开始吧。上手,先来一个基本的小程序,问你的名字是什么,然后输出 “hi” + name + “!”。
1 |
|
将文件保存叫做greetings.nim, 之后就是编译运行他。
1 |
|
添加上--run
参数后便可以让nim编译文件通过后运行他,在文件名之后也可以添加运行参数。
1 |
|
常用的命令和开关都有缩写,因此您还可以使用:
1 |
|
在默认情况下编译采用的是Debug
模式,如果想要以Release
模式进行编译,需要显式添加参数-d:release
1 |
|
默认情况下,Nim 编译器会生成大量运行时检查,旨在满足您的调试乐趣。使用 -d:release 会关闭一些检查并打开优化。
对于基准测试或生产代码,请使用 -d:release 开关。要将性能与 C 等不安全语言进行比较,请使用 -d:danger 开关以获得有意义的、可比较的结果。否则,Nim 可能会受到 C 无法使用的检查的阻碍。
字符串
在使用到在字符串时,需要用双引号将字符串包起来,这样编译器才会认为这是一个字符串。 var 语句声明一个名为 name 的字符串类型的新变量,其值由 readLine 过程返回。由于编译器知道 readLine 返回一个字符串,因此您可以在声明中省略类型(这称为本地类型推断)。所以这也可以工作:
1 |
|
请注意,这基本上是 Nim 中存在的唯一类型推断形式:它是简洁性和可读性之间的良好折衷。
“hello world”程序包含编译器已知的几个标识符:echo、readLine 等。这些内置函数在系统模块中声明,并由任何其他模块隐式导入。
词汇元素
让我们更详细地看看 Nim 的词汇元素:与其他编程语言一样,Nim 由(字符串)文字、标识符、关键字、注释、运算符和其他标点符号组成。
字符串和符号字面量
字符串需要被一对双引号包裹在里面,特殊的字符(转义字符)使用\
转义符号进行修饰,\n
表示换行,\t
表示制表符缩进,还有很多别的符号。如果我们不需要转义的字符串,而是一个原始文本,那么在字符串前添加一个r
即可。
1 |
|
在原始文字中,反斜杠不是转义字符。
编写字符串文字的第三种也是最后一种方法是长字符串文字。它们用三个引号写成:“”“…”“”;它们可以跨越多行,并且 \ 也不是转义字符。例如,它们对于嵌入 HTML 代码模板非常有用。
注释
注释以字符串或字符文字之外的任意位置开始,并以井号字符 # 开头。文档注释以##开头:
1 |
|
文档注释是标记;它们只允许出现在输入文件的特定位置,因为它们属于语法树!该特性支持更简单的文档生成器。
多行注释以#[ 开始,以]# 结束。多行注释也可以嵌套。
1 |
|
数字
数字文字的书写方式与大多数其他语言一样。作为一个特殊的变化,允许使用下划线以获得更好的可读性:1_000_000(一百万)。包含点(或’e’或’e’)的数字是浮点文字:10.e9(十亿)。十六进制字面值以0x为前缀,二进制字面值以0b为前缀,八进制字面值以0为前缀。单独的前导零不能产生八进制数。