solidity智慧合約[27]-函式與函式過載
阿新 • • 發佈:2018-11-25
函式的一般形式
1 |
function (<parameter types>) {public|internal|external} [pure|constant|view|payable] [returns (<return types>)] |
函式的作用
1、與區塊鏈互動
2、本地執行
3、封裝程式碼
帶引數函式
1 |
uint public num; |
帶參函式呼叫—函式命名引數
1 |
pragma solidity ^0.4.23; |
函式過載
在一個合約中有相同名字的函式,就是函式的過載。
過載必須要函式的型別與長度都不相同。
下面的例子都是錯誤的寫法
錯誤1
1 |
function fun(){ |
錯誤2
1 |
function fun() returns(uint){ |
錯誤3
1 |
function fun() returns(uint){ |
正確1
1 |
function fun(uint k) public pure{ |
正確2
1 |
function fun2(uint a) public pure{ |
例子剖析1
在下面的例子中,fun3有兩個過載的函式。函式test不能夠呼叫fun3(2),因為不能夠明確到底是要呼叫哪一個。
fun3(256)能夠執行成功。因為256超過了int8的最大值,只能夠呼叫fun3(uint a). 如果想明確,可以強制的轉換,例如uint256(2)。
1 |
function fun3(uint a) public { |
本文連結: https://dreamerjonson.com/2018/11/21/solidity-27-function-overload/
版權宣告: 本部落格所有文章除特別宣告外,均採用 CC BY 4.0 CN協議 許可協議。轉載請註明出處!