几周前,我在GitHub上浏览时遇到了一个引起我注意的回购。 它托管了一个完全用Nim编写的项目。
Nim到底是什么? 我想。
我立刻得出结论,这是很多人使用的许多编程语言之一,但是我只是一个愚蠢的人,不知道它。 但是我没有把它放在一边,而是决定:让我们对此有所了解。
然后,我有了两个主要认识:
- 不,很多人不使用这种语言。
- 但也许应该如此。
因此,这里简要介绍了我在快速编程教程Nim方面的经验,以及为什么该语言对我来说非常有前途。
给我看代码!
这是我在Nim中编写的一个无用的程序:
看起来很干净。 它也是如此简单,即使您以前可能从未听说过Nim,您也可以毫不费力地弄清楚它的作用。 (提示:它打印数字:5我:5。)
因此,让我们分解一下这里似乎熟悉的内容:
变量声明
JavaScript开发人员非常熟悉。 虽然某些语言使用var,有些语言使用let,但是JS和Nim都允许使用两者之一进行声明。 请务必注意,两种语言的含义并不相同。 但是稍后会更多。
块语法
要在Nim中标记一个新块,我们使用冒号,后跟缩进线。 那就是Python。
关键词
这两个循环以及if语句看起来都像是从Python中拔出来的。 实际上,从第5行开始的所有内容实际上都是有效的Python(假设我们定义了echo函数)。
因此,是的,Python中的许多关键字和运算符在Nim中也有效,例如not,is,and或or等。
到目前为止,Nim完全没有什么特别的。 由于我们需要使用let或var,因此它看起来像是Python的较差版本(在语法上)。
但是,如果我告诉您的话,该怎么办:Nim是一种静态类型的语言,其运行速度几乎与C一样快。
哦,现在我们在说话。
一场友好的比赛
在深入探讨Nim语法(尤其是静态类型的部分,我们仍然没有看到它)之前,让我们尝试备份有关其速度的声明。 为此,我编写了一个程序来天真地(即不进行动态编程)计算Nim,Python和C中的第n个斐波那契数。
为了公平起见,我根据针对此问题的建议Leetcode解决方案(方法1)对实现进行了标准化,并确保在三种语言中尽可能地坚持下去。
为了计时执行时间,我在Bash shell中使用了时间输出中的"真实"值。
以下是计算第40个斐波那契数的结果:
是的,那件事发生了。
现在,这是非常有限的,并且离科学实验还很遥远&#x