Nim-hello world

Nim - Hello world!

这段时间一直在玩Haskell, 有点小腻。换个编程语言看看调节一下口味,本系列是对官方文档《 Tutorial, part 1》《 Tutorial, part 2》和《Tutorial, part 3》三部曲进行学习,然后增加了本人的一些思索过程,可全当作是官方学习手册的汉化版本。
话不多说,我们直接开始吧。上手,先来一个基本的小程序,问你的名字是什么,然后输出 “hi” + name + “!”。

1
2
3
4
# This is a comment
echo "What's your name? "
var name: string = readLine(stdin)
echo "Hi, ", name, "!"

将文件保存叫做greetings.nim, 之后就是编译运行他。

1
nim compile --run greetings.nim

添加上--run参数后便可以让nim编译文件通过后运行他,在文件名之后也可以添加运行参数。

1
nim compile --run greetings.nim arg1 arg2

常用的命令和开关都有缩写,因此您还可以使用:

1
nim c -r greetings.nim

在默认情况下编译采用的是Debug模式,如果想要以Release模式进行编译,需要显式添加参数-d:release

1
nim c -d:release greetings.nim

默认情况下,Nim 编译器会生成大量运行时检查,旨在满足您的调试乐趣。使用 -d:release 会关闭一些检查并打开优化。
对于基准测试或生产代码,请使用 -d:release 开关。要将性能与 C 等不安全语言进行比较,请使用 -d:danger 开关以获得有意义的、可比较的结果。否则,Nim 可能会受到 C 无法使用的检查的阻碍。

字符串

在使用到在字符串时,需要用双引号将字符串包起来,这样编译器才会认为这是一个字符串。 var 语句声明一个名为 name 的字符串类型的新变量,其值由 readLine 过程返回。由于编译器知道 readLine 返回一个字符串,因此您可以在声明中省略类型(这称为本地类型推断)。所以这也可以工作:

1
var name = readLine(stdin)

请注意,这基本上是 Nim 中存在的唯一类型推断形式:它是简洁性和可读性之间的良好折衷。

“hello world”程序包含编译器已知的几个标识符:echo、readLine 等。这些内置函数在系统模块中声明,并由任何其他模块隐式导入。

词汇元素

让我们更详细地看看 Nim 的词汇元素:与其他编程语言一样,Nim 由(字符串)文字、标识符、关键字、注释、运算符和其他标点符号组成。

字符串和符号字面量

字符串需要被一对双引号包裹在里面,特殊的字符(转义字符)使用\ 转义符号进行修饰,\n表示换行,\t表示制表符缩进,还有很多别的符号。如果我们不需要转义的字符串,而是一个原始文本,那么在字符串前添加一个r即可。

1
r"C:\program files\nim"

在原始文字中,反斜杠不是转义字符。
编写字符串文字的第三种也是最后一种方法是长字符串文字。它们用三个引号写成:“”“…”“”;它们可以跨越多行,并且 \ 也不是转义字符。例如,它们对于嵌入 HTML 代码模板非常有用。

注释

注释以字符串或字符文字之外的任意位置开始,并以井号字符 # 开头。文档注释以##开头:

1
2
3
# A comment.

var myVariable: int ## a documentation comment

文档注释是标记;它们只允许出现在输入文件的特定位置,因为它们属于语法树!该特性支持更简单的文档生成器。
多行注释以#[ 开始,以]# 结束。多行注释也可以嵌套。

1
2
3
4
5
6
7
8
#[
You can have any Nim code text commented
out inside this with no indentation restrictions.
yes("May I ask a pointless question?")
#[
Note: these can be nested!!
]#
]#

数字

数字文字的书写方式与大多数其他语言一样。作为一个特殊的变化,允许使用下划线以获得更好的可读性:1_000_000(一百万)。包含点(或’e’或’e’)的数字是浮点文字:10.e9(十亿)。十六进制字面值以0x为前缀,二进制字面值以0b为前缀,八进制字面值以0为前缀。单独的前导零不能产生八进制数。


Nim-hello world
http://cvrain.cloudvl.cn/2023/11/23/Nim/nim-hello/
作者
ClaudeRainer
发布于
2023年11月23日
许可协议