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