不得不说Rust也是门不错的语言,园子里
有人曾经说:
有人不相信,问我:vczh轮子大神曾经说过这样的话吗?
我只想说:你去找他求证嘛!这样就知道我是否是瞎编的了。
|
宏可使用命令式编程方式来构造分析树(parse trees),使用Nim并不须要换一种编程风格来来完成元数据编程(这又是在黑.NET吗)
宏不能改变Nim的语法(不能用宏来作语法糖),由于彻底就木有这个必要,由于Nim的语法已经足够灵活了
经过缩进来分隔代码块,缩进不能使用tab制表符,这样编译器能更好的处理代码(说这一句有毛用啊?)
|
别的语言都叫function或者method,Nim给方法叫作Procedures,咱们先来看一个方法的定义
Nim用proc声明一个方法,这个方法的名字叫作yes,要求输入一个string类型的参数,参数名是question,返回一个bool类型的值,用return关键字返回值,并跳出这个方法的做用域(同时也跳出了while循环)
|
只要一个方法被定义成有返回值的方法,
那么Nim会给你默认建立一个result变量,
你能够在方法中不用声明就使用这个result变量,无论你方法中有没有retun指令,到方法执行结束,都会返回这个result变量
来看看下面的代码
若是你又用var 声明了一个result,就会隐藏掉Nim为你默认建立的那个result,这是result就和普通变量没有区别了
|
为了执行效率,在方法体内部不能改变参数的指
若是你只是想在方法体内部使用与参数同名的变量,那么,不要紧,
你能够在方法体内部,使用var从新定义一个同名参数,隐藏掉自己的方法参数
这样就能够像普通的变量同样使用它了
若是你必定要在方法体内部改变参数的值,
(这是十分常见的,由于这样作能够为调用者提供信息)
那么你能够在声明参数的时候,使用var关键字,就像下面这样:
|
在主流编程语言中,一个方法存在返回值,若是咱们只想调用这个方法,而不使用他的返回值,那咱们不理会他的返回值就是了
在Nim中,这是不容许的,你必须显示的丢弃掉他的返回值才行,就像下面的代码一下
固然,你能够在声明方法的时候,就显示的声明,这个方法的返回值是能够丢弃的,就像下面这样:
|
有的时候一个方法包含不少参数,使用这个方法的人只记得参数的名字,但不记得参数的顺序了,那么你可使用具名参数来解决这个问题,就像下面这样:
固然你可能记得前几个参数的顺序,后面几个参数的顺序不记得了,不要紧,你能够这么用
|