5 5 一些編碼建議

2021-08-22 06:51:20 字數 2348 閱讀 7785

這裡不是 ruby語言的編碼約定,只是建議,很少的一些建議。在語法正確的前提下,你可以按照自己的編碼風格自由組織你的**。

一. 命名

常量全用大寫的字母,用下劃線分割單詞。例如:max, array_length。

類名和模組名用大寫字母開頭的單詞組合而成。例如:myclass, person。

方法名全用小寫的字母,用下劃線分割單詞。例如:talk, is_prime?。在ruby裡,有時將「!」和「?」附於某些方法名後面。驚嘆號「!」暗示這個方法具有破壞性, 有可能會改變傳入的引數。問號「?」表示這個方法是乙個布林方法,只會返回 true 或 false。

變數和引數用小寫字母開頭的單詞組合而成。例如:name, currentvalue。

類名、模組名、變數名、引數名最好使用「名詞」或者「形容詞+名詞」。方法名最好使用「動詞」或者「動詞+名詞」。例如:astudent.talk 。    

二. 空格和圓括號

關鍵字之後要留空格。

逗號「,」、 分號「;」之後要留空格。 「,」、 「;」向前緊跟,緊跟處不留空格。

賦值操作符、比較操作符、算術操作符、邏輯操作符,如「=」、「+=」 「>=」、「<=」、「+」、「*」、「%」、「&&」、「||」等二元操作符的前後應當加空格。

一元操作符如「!」、「~」等之後不加空格。

象「[]」、「.」、「::」這類操作符前後不加空格。

函式名之後不要留空格,緊跟左圓括號「(」,以與關鍵字區別。左圓括號「(」向後緊跟,右圓括號「)」向前緊跟,緊跟處不留空格。

ruby裡圓括號常常被省略,看程式 e5.5-1.rb :

ruby **

#e5.5-1.rb  

def  talk name   

"hi! " + name   

endputs talk "kaichuan"

# => hi! kaichuan

puts talk("kaichuan")     # => hi! kaichuan

puts (talk "kaichuan")    # => hi! kaichuan

puts (talk("kaichuan"))    # => hi! kaichuan

優先規則會自動確定哪個引數被哪個方法使用。但是,生活並不總是美好的,事情經常變得複雜,看程式 e5.5-2.rb :

ruby **

#e5.5-2.rb  

a=5   

b=3   

puts   a>b  ?  "a>b"  :  "bbb"

# =>  a>b

puts   (a>b)? ("a>b") : ("bbb")          # =>  a>b

#puts   a>b?  "a>b"  :  "bbb"           錯誤語句

最後一條語句,變數b 與三元條件運算子的問號「?」之間沒有空格,沒有圓括號,產生錯誤。所以建議除了極簡單的情況,還是使用圓括號為好。

圓括號還可以把幾個語句約束成乙個語句集合,看程式 e5.5-3.rb :

ruby **

#e5.5-3.rb  

a = 3   

b = 1;  a += b    if  3 > 5   

print   "a = ", a, "\n"

# =>  a = 3

print   "b = ", b, "\n"

# =>  b = 1

c = 3   

(d = 1;  c += d)  if  3 > 5   

print   "c = ", c, "\n"

# =>  c = 3

print   "d = ", d, "\n"

# =>  d = nil

條件為假,語句集合裡的變數d 沒有被賦值。

三. 使用 return

你在定義方法的時候,在最後一行可以顯式地 return 某個值或幾個值,但卻不是必須的。 ruby 方法的最後一行語句如果是表示式,表示式的值會被自動返回;最後一行語句如果不是表示式,就什麼也不返回。

return 並不僅僅用在方法的最後一行。使用 break 你能夠跳出本層迴圈,如果要從多重迴圈體中跳出,可以使用return ,結束這個方法; return還能夠從方法的某個執行點立即退出,而不理會方法的其餘**,例如程式 e3.12-1.rb 的方法 is_prime?。

四. 注釋

養成寫注釋的習慣吧!你見過沒有路標的高速公路嗎?

注釋表明了一段**塊的功能、意圖或是**塊的解釋,應該簡潔明瞭,錯誤的注釋不如沒有注釋。一般地,注釋的位置應與被描述的**相鄰,可以放在**的上方或右方,不要放在**的下方。

完整閱讀,請看我寫的 ruby語言中文教程all in one

初學FPGA一些建議

數位電路 這是大學裡的基本課程 涵蓋了一般數位電路的組合電路 時序電路 暫存器傳輸 儲存器以及可程式設計邏輯電路 fpga 就是其中一種 還有比較好的新增了計算機的指令集結構 處理器設計等計算機方面的內容,整個課程就很系統的介紹了硬體電路系統的整體框架。語言學習 初學 fpga 的話,時序和組合部分...

一些編碼規範

先判斷是否為空list null list.size 0提示條件裡不要有感嘆號!客戶很反感。字串加trim 判斷。去掉前邊的空格。儘量減少對變數的重複計算 明確乙個概念,對方法的呼叫,即使方法中只有一句語句,也是有消耗的,包括建立棧幀 呼叫方法時保護現場 呼叫方法完畢時恢復現場等。所以例如下面的操作...

分配時間的一些建議

一 儘量減少做無用功。勿衝動,再好的想法也不要衝動,做完了才發現白做了就晚了。勿求全,不要把目標定的太高,就像裝修房子,每個人都恨不得精益求精,最後花費巨大的錢財和時間,很多事情夠用就好。另外要學會放棄,人生可以做的事情很多,不必貪多,猴子掰玉公尺,最後一無所獲。這樣也許可以節約你80 的時間,還省...