首页
学习
活动
专区
圈层
工具
发布

Nim教程【三】

这是国内第一个关于Nim的系列教程

(至少我百度和必应是没有找到类似的教程)

先说废话

有人说 Golang的编译器/工具链也学互联网行业跟风拿用户当测试,简直一点素质没有。 还有人说 Go社区的风气不是很好,发布半成品成风。 也许有人会说因为Go社区还年轻,但是Node社区也很年轻,虽然很多库功能很弱,但是完成了的功能都是比较完备的。 我就啥也不说了,免得被炮火波及,哈哈! (不管怎么说,我昨天跑到go社区的QQ群里去推Nim,至少是没有被踢掉的,哈哈,而且还有一个人表示对Nim感兴趣)

言归正传,依然还是介绍Nim的文字打头

Nim的表现力

Nim的编译器、标准库都是用Nim语言实现的 (golang目前应该不是这样,但他们貌似要计划这样做) 内置高级数据类型:strings、sets、sequences等等 拥有本地类型接口的现代类型系统:tuples、variants、generics等等 可自定义的操作符:用户自定义的操作符往往比语言内置的操作符更具有可读性,比如"$=" 可以用宏的方式在编译期更改抽象语法树

好,继续说语法

关键字block和作用域

关键字break

关键字continue

关键字when

  1. when关键词的每个分支所用的表达式,都必须能在编译期取值
  2. when关键词内的每个分支并不开辟新的作用域
  3. 当第一个分支的条件为true的时候,编译器会对第一个分支的代码做词法分析,编译器不对其他分支进行分析 当你编写系统级代码的时候可以用when关键字来代替C语言中的#ifdef 因为上面讲到的第三条特性,所以经常会写when false这样的代码,以避免编译器在编译期分析的效果(主要是因为很多东西只有在运行期才能确定)

缩进

今天就写到这里,喜欢的朋友请帮我点一下推荐

你们的推荐是我写下去的最大动力

下一篇就写到Nim的方法了

下一篇
举报
领券