前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nim教程【三】

Nim教程【三】

作者头像
liulun
发布2018-01-12 15:54:21
5760
发布2018-01-12 15:54:21
举报
文章被收录于专栏:liulunliulun

这是国内第一个关于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的方法了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-05-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档