我最近在重新學solidity,鞏固一下細節,也寫一個「Solidity 極簡入門」,供小白們使用(編程大佬可以另找教程),每週更新1-3 講。
所有代碼和教程開源在github: github.com/AmazingAng/WTFSolidity
重載
solidity 中允許函數進行重載(overloading),即名字相同但輸入參數類型不同的函數可以同時存在,他們被視為不同的函數。注意,solidity 不允許修飾器(modifier)重載。
函數重載
舉個例子,我們可以定義兩個都叫saySomething() 的函數,一個沒有任何參數,輸出"Nothing";另一個接收一個string 參數,輸出這個string。
實參匹配(Argument Matching)
在調用重載函數時,會把輸入的實際參數和函數參數的變量類型做匹配。
如果出現多個匹配的重載函數,solidity 文檔上說會報錯。它給的例子是兩個叫f() 的函數,一個參數為uint8,另一個為uint256。文檔說如果輸入50,既可以被轉換為uint8,也可以被轉換為uint256,因此會報錯。但是我沒遇到:
總結
這一講,我們介紹了solidity 中函數重載的基本用法:名字相同但輸入參數類型不同的函數可以同時存在,他們被視為不同的函數。
推特: @0xAA_Science
社區: Discord | 微信群|官網wtf.academy
所有代碼和教程開源在github: github.com/AmazingAng/WTFSolidity