solidity编码规范
命名規范
文件、合約、庫、事件、枚舉及結構體命名
當文件里只包含一個合約時,文件命名應該與合約命名相同。
當文件里包含不只一個合約時,文件命名應該根據項目內容合理命名。
合約、庫、事件及結構體命名應該使用單詞首字母大寫的方式,這個方式也稱為:駝峰式命名法,比如:SimpleToken, SmartBank, CertificateHashRepository,Player。
函數、參數、變量及修飾器
函數、參數、變量及修飾器應該使用首單詞小寫后面單詞大寫的方式,這個方式也稱為:駝峰式命名法,是一種混合大小寫的方式,如:
函數名應該如:getBalance,transfer,verifyOwner,addMember。
參數和變量應該如:initialSupply,senderAddress,account,isPreSale。
修飾器應該如:onlyAfter,onlyOwner。
代碼格式相關
縮進
在方法、變量或者機構體等每行使用0、2或者4個空格縮進
在tab或空格的選擇中,空格是首選縮進方式,禁止tab和空格混合使用。
空行
回車(空行)
不同的功能塊之間應該用空格隔開,例如公共變量與方法之間,方法與方法之間等,且不允許使用連續的空行。(只能用一個空行,不同的代碼塊或者功能應使用注釋加空行)
合約之間應該有空行,例如:
contract A {...}contract B {...}contract C {...}而不是使用:
contract A {...}contract B {...}contract C {...}函數之間應該有空行,例如:
左括號應該跟定義在一行
定義包括合約定義、函數定義、庫定義、結構體定義等等,例如推薦使用:
不推薦使用:
左括號應該跟條件控制在一行
在使用if, else, while, for 時
左花括號和聲明同一行
右括號和左括號聲明保持相同縮進位置。
左括號后應回車
此外,if、while、for條件語句之間必須空行
推薦的寫法是:
不推薦使用:
如果控制語句內只有一行,括號可省略,如:
但像下面一個語句有多方就不能省略,如:
表達式內的空格
一個單行的表達里,在小括號、中括號、大括號里應該避免不必要的空格
例如推薦使用:
有一種例外是,結尾的括號跟在結束的分號后面, 應該加一個空格,例如:
分號”;”前不應該有空格,例如:
而不是:
不要為對齊添加不必要的空格,例如推薦使用:
而不是:
控制每一行長度
每行不應該太長,最好在80(或160)個字符以內,函數的參數應該是單獨的行,且只有一個縮進,例如推薦的方式是:
而不是:
對應的賦值語句應該是這樣寫:
而不是:
文件編碼格式
推薦使用utf-8編碼
引入文件
一般在代碼開始進行引入聲明
建議使用:
而不是:
函數編寫規范
函數的順序
在編寫函數的時候,應該讓大家容易找到構造函數,回退函數,官方推薦的的函數順序是:
構造函數
回退函數 (如果有)
外部函數(external)
公有函數(public)
內部函數(internal)
私有函數(private)
同一類函數時,constant函數放在后面
例如:
而不是下面的函數順序:
明確函數的可見性
所有的函數(包括構造函數)應該在定義的時候明確函數的可見性,例如應該使用:
而不是
可見性應該在修飾符前面
函數的可見性應該寫在自定義的函數修飾符前面,例如:
而不是
變量聲明
對于數組變量聲明,類型和數組中括號直接不能有空格。
規范的方式:
uint[5] T = [1,2,3,4,5];
不規范的方式:
uint [5] T = [1,2,3,4,5];
其他建議
賦值運算符與變量和表達式之間要有一個空格
規范的方式:
x = 3;x = 100 / 10;x += 3 + 4;x |= y && z;不規范的方式:
x=3;x = 100/10;x += 3+4;x |= y&&z;為了顯示優先級,優先級運算符和低優先級運算符之間要有空格,這也是為了提升復雜聲明的可讀性。對于運算符兩側的空格數目必須保持一致。
規范的方式:
x = 2**3 + 5;x = 2***y + 3*z;x = (a+b) * (a-**b);不規范的方式:
x = 2** 3 + 5;x = y+z;x +=1;
參考文獻
Solidity style-guide
總結
以上是生活随笔為你收集整理的solidity编码规范的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fabric--简单的资产Chainco
- 下一篇: go-ipfs-api在项目中的使用