Nim教程【三】
|
Nim的编译器、标准库都是用Nim语言实现的
(golang目前应该不是这样,但他们貌似要计划这样做)
内置高级数据类型:strings、sets、sequences等等
拥有本地类型接口的现代类型系统:tuples、variants、generics等等
可自定义的操作符:用户自定义的操作符往往比语言内置的操作符更具有可读性,比如"$="
可以用宏的方式在编译期更改抽象语法树
|
|
不管我们用for还是用while,都会导致开辟一个新的作用域
这里提到的作用域,是内建的作用域,我们可以使用block关键字显示创建一个i额作用域
block关键字后面的作用域名称是可选的 |
|
break可以迫使程序执行跳出当前作用域
像while、for和block关键字声明的作用域,它都能跳出
注意只是跳出当前的作用域,要想一下子多跳几层作用域,那么就要声明block关键字了
|
|
continue关键字迫使程序马上执行下一次循环
|
|
关键词when起的作用和if...elif....else很相似
不同点如下:
当你编写系统级代码的时候可以用when关键字来代替C语言中的#ifdef
因为上面讲到的第三条特性,所以经常会写when false这样的代码,以避免编译器在编译期分析的效果(主要是因为很多东西只有在运行期才能确定)
|
|
单条指令,类似这样的代码不需要缩进:
嵌套的判断,需要缩进
多条指令也需要缩进
如果判断条件是一个挺长的表达式,那么也可以用换行缩进来保证可读性和正确性
(注意,一定要在操作符、括号开始、逗号结束之后再换行缩进)
有些地方只允许你使用一个表达式,或者为了保证可读性,你最好用一个表达式的时候
你可以用括号和分号来解决问题,比如下面的代码
|
今天就写到这里,喜欢的朋友请帮我点一下推荐
三十岁的女人》
Nim教程【三】的更多相关文章
- CRL快速开发框架系列教程三(更新数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)
前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...
- 无废话ExtJs 入门教程三[窗体:Window组件]
无废话ExtJs 入门教程三[窗体:Window组件] extjs技术交流,欢迎加群(201926085) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3 ...
- CocoStudio教程三:认识并利用CocoStudio的果实 运行2.2.1版本
原文:CocoStudio教程三:认识并利用CocoStudio的果实 原文用的老版,用2.21搞起来好像有些问题,然后自己摸索了下,有的都是乱找的方法,只求能运行... 1,原文的CCJsonRea ...
- Android Studio系列教程三--快捷键
Android Studio系列教程三--快捷键 2014 年 12 月 09 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang.com/ ...
- Laravel教程 三:视图变量传递和Blade
Laravel教程 三:视图变量传递和Blade 此文章为原创文章,未经同意,禁止转载. Blade 上一篇我们简单地说了Router,Views和Controllers的工作流程,这一次我就按照上一 ...
- NGUI系列教程三
接下来我们再来看Progress Bar和Slider,对比参数我们可以发现,Progress Bar和slider的明显区别在于slider多一个Thumb选项,这里的Thumb就是我们拖动的时候点 ...
- 中文翻译:pjsip教程(三)之ICE stream transport的使用
1:pjsip教程(一)之PJNATH简介 2:pjsip教程(二)之ICE穿越打洞:Interactive Connectivity Establishment简介 3:pjsip教程(三)之ICE ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级) 企业库验证应用程序模块之配置文件模式: ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级) 企业库提供了一个很强大的验证应用程序模 ...
随机推荐
- 关于DCOM的安全性
关于DCOM的安全性 DCOM的安全性设置在注册表中. 2. 通过DCOMCNF.exe可以配置
- 关于UID和GID的创建、修改、删除;简要举例
用户.组和权限 安全3A资源分派 (authentication)认证 (authorization)授权 (accounting)审计 user( 用户) Linux用户:Username/UID ...
- 详解Oracle DELETE和TRUNCATE 的区别(摘)
语法delete from aa truncate table aa 区别 1.delete from后面可以写条件,truncate不可以. 2.delete from记录是一条条删的,所删除的每行 ...
- Java NIO教程 Selector
这次我们开讲非阻塞I/O中的Selector,它需要配合非阻塞的TCP和UDP来使用.首先我们先简单讲一下TCP和UDP的非阻塞通道. 非阻塞I/O通道 在上代码前我们先讲解一些最基本的知识.TCP和 ...
- C# 代码页获取input的值
<input id="aa" name="iaa" type="text" /> Label1.Text = Request.F ...
- No module named yum错误的解决办法
今天用yum安装软件的时候出现如下错误: There was a problem importing one of the Python modules required to run yum. Th ...
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
iOS页面间传值实现方法:1.通过设置属性,实现页面间传值:2.委托delegate方式:3.通知notification方式:4.block方式:5.UserDefault或者文件方式:6.单例模式 ...
- RHEL 集群(RHCS)配置小记 -- 文档记录
1.RHEL 6 集群配置官方管理手册 https://access.redhat.com/site/documentation/zh-CN/Red_Hat_Enterprise_Linux/6/pd ...
- linux桌面环境gnome,kde,xfce,lxde 使用比较(转)
Linus Torvalds大神前几日在 Google+上表示,GNOME 3"无可容忍的凌乱",改投Xfce桌面环境.下面就GNOME, KDE, XFCE和 LXDE略作比较. ...
- NFS配置
一,配置nfs服务端 nfs服务端IP:192.168.1.10 1,安装nfs [root@localhost ~]# yum install -y nfs-utils Loaded plugins ...