這是國內第一個關於Nim的系列教程
先說廢話
不得不說Rust也是門不錯的語言,園子裡
有人曾經說:
有人不相信,問我:vczh輪子大神曾經說過這樣的話嗎?
我只想說:你去找他求證嘛!這樣就知道我是不是瞎編的了。
|
巨集可以使用指令式程式設計方式來構造分析樹(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關鍵字,就像下面這樣:
|
丟棄返回值
在主流程式語言中,一個方法存在返回值,如果我們只想呼叫這個方法,而不使用他的返回值,那我們不理會他的返回值就是了
在Nim中,這是不允許的,你必須顯示的丟棄掉他的返回值才行,就像下面的程式碼一下
當然,你可以在宣告方法的時候,就顯示的宣告,這個方法的返回值是可以丟棄的,就像下面這樣:
|
具名實參
有的時候一個方法包含很多引數,使用這個方法的人只記得引數的名字,但不記得引數的順序了,那麼你可以使用具名引數來解決這個問題,就像下面這樣:
當然你可能記得前幾個引數的順序,後面幾個引數的順序不記得了,沒關係,你可以這麼用
|
這一篇就寫到這裡吧
下一篇會寫操作符、迭代器等內容
喜歡的人請幫我點一下推薦,謝謝!