不得不說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中,這是不容許的,你必須顯示的丟棄掉他的返回值才行,就像下面的代碼一下
固然,你能夠在聲明方法的時候,就顯示的聲明,這個方法的返回值是能夠丟棄的,就像下面這樣:
|
有的時候一個方法包含不少參數,使用這個方法的人只記得參數的名字,但不記得參數的順序了,那麼你可使用具名參數來解決這個問題,就像下面這樣:
固然你可能記得前幾個參數的順序,後面幾個參數的順序不記得了,不要緊,你能夠這麼用
|