这是国内第一个关于Nim的系列教程
先说废话
不得不说Rust也是门不错的语言,园子里
有人曾经说:
还有人曾这样评价Rust语言
但是,但是Nim兴盛起来,Rust就不算什么了
有人不相信,问我:vczh*大神曾经说过这样的话吗?
我只想说:你去找他求证嘛!这样就知道我是不是瞎编的了。
|
高雅的Nim
宏可以使用命令式编程方式来构造分析树(parse trees),使用Nim并不需要换一种编程风格来来完成元数据编程(这又是在黑.NET吗)
宏不能改变Nim的语法(不能用宏来做语法糖),因为完全就木有这个必要,因为Nim的语法已经足够灵活了
通过缩进来分隔代码块,缩进不能使用tab制表符,这样编译器能更好的处理代码(说这一句有毛用啊?)
|
方法
别的语言都叫function或者method,Nim给方法叫做Procedures,我们先来看一个方法的定义
Nim用proc声明一个方法,这个方法的名字叫做yes,要求输入一个string类型的参数,参数名是question,返回一个bool类型的值,用return关键字返回值,并跳出这个方法的作用域(同时也跳出了while循环)
|
方法中的result
只要一个方法被定义成有返回值的方法,
那么Nim会给你默认创建一个result变量,
你可以在方法中不用声明就使用这个result变量,不管你方法中有没有retun指令,到方法执行结束,都会返回这个result变量
来看看下面的代码
如果你又用var 声明了一个result,就会隐藏掉Nim为你默认创建的那个result,这是result就和普通变量没有区别了
|
方法中的参数
为了执行效率,在方法体内部不能改变参数的指
如果你只是想在方法体内部使用与参数同名的变量,那么,没关系,
你可以在方法体内部,使用var重新定义一个同名参数,隐藏掉本身的方法参数
这样就可以像普通的变量一样使用它了
在上面的方法中,同时也展示了参数的默认值是怎么设置的。
如果你一定要在方法体内部改变参数的值,
(这是十分常见的,因为这样做可以为调用者提供信息)
那么你可以在声明参数的时候,使用var关键字,就像下面这样:
在上面的方法中,参数res、remainder的值会被改变,而且方法的调用者也会获悉这个改变 |
丢弃返回值
在主流编程语言中,一个方法存在返回值,如果我们只想调用这个方法,而不使用他的返回值,那我们不理会他的返回值就是了
在Nim中,这是不允许的,你必须显示的丢弃掉他的返回值才行,就像下面的代码一下
上面的yes方法声明的时候定义了返回值,如果你不想用它的返回值,就只能用discard显示丢弃掉他的返回值
当然,你可以在声明方法的时候,就显示的声明,这个方法的返回值是可以丢弃的,就像下面这样:
|
具名实参
有的时候一个方法包含很多参数,使用这个方法的人只记得参数的名字,但不记得参数的顺序了,那么你可以使用具名参数来解决这个问题,就像下面这样:
这样做,可读性又好,使用起来又方便,真是amazing
当然你可能记得前几个参数的顺序,后面几个参数的顺序不记得了,没关系,你可以这么用
|
这一篇就写到这里吧
下一篇会写操作符、迭代器等内容
喜欢的人请帮我点一下推荐,谢谢!