中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

solidity智能合約[27]-函數與函數重載

發布時間:2020-07-19 15:32:20 來源:網絡 閱讀:440 作者:jonson_jackson 欄目:開發技術

函數的一般形式

1
function (<parameter types>) {public|internal|external} [pure|constant|view|payable] [returns (<return types>)]

函數的作用

1、與區塊鏈交互
2、本地執行
3、封裝代碼

帶參數函數

1
2
3
4
5
6
7
uint public num;
string public name;

function setparam(uint _num,string _name) public {
    num  = _num;
    name = _name;
}

帶參函數調用—函數命名參數

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
pragma solidity ^0.4.23;


contract funcParam{

   //狀態變量
   uint public num;
   string public name;
   //代餐函數
   function setparam(uint _num,string _name) public {
       num  = _num;
       name = _name;
   }

   //調用
   function Test() public {
       setparam(99,"bob");
   }

   //函數命名參數
     function Test2() public {
       setparam({_num:99,_name:"bob"});
   }

     function Test3() public {
       setparam({_name:"Alice",_num:999});
   }

   //錯誤代碼,參數個數不匹配
   // function Test4() public {
   //     setparam(100);
   // }

}

函數重載

在一個合約中有相同名字的函數,就是函數的重載。
重載必須要函數的類型與長度都不相同。

下面的例子都是錯誤的寫法

錯誤1

1
2
3
4
5
6
7
function  fun(){

}

function  fun(){

}

錯誤2

1
2
3
4
5
6
7
function  fun() returns(uint){

}

 function  fun() returns(bytes1){

}

錯誤3

1
2
3
4
5
6
7
  function  fun() returns(uint){

}

function  fun(){

}

正確1

1
2
3
4
5
6
7
function  fun(uint k) public pure{

}

function  fun() public pure{

}

正確2

1
2
3
4
5
6
7
function  fun2(uint a) public pure{

}

function  fun2(bytes1 b) public pure{

}

例子剖析1

在下面的例子中,fun3有兩個重載的函數。函數test不能夠調用fun3(2),因為不能夠明確到底是要調用哪一個。
fun3(256)能夠執行成功。因為256超過了int8的最大值,只能夠調用fun3(uint a). 如果想明確,可以強制的轉換,例如uint256(2)。

1
2
3
4
5
6
7
8
9
10
11
12
13
function  fun3(uint a) public {
 num = 256;
}

function  fun3(uint8 b) public{
  num = 8;
}

function test() public{
 //fun3(2);錯誤,不明確
 fun3(256);
   fun3(uint256(2));
}
  • 本文鏈接: https://dreamerjonson.com/2018/11/21/solidity-27-function-overload/

  • 版權聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協議 許可協議。轉載請注明出處!

solidity智能合約[27]-函數與函數重載

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

独山县| 长乐市| 通许县| 年辖:市辖区| 孝昌县| 阳江市| 凤山县| 信丰县| 鄢陵县| 冀州市| 宁南县| 二手房| 尖扎县| 金寨县| 阳朔县| 深州市| 莒南县| 祥云县| 台湾省| 敖汉旗| 巨野县| 沭阳县| 南平市| 筠连县| 西林县| 宁远县| 沙洋县| 富裕县| 滁州市| 诸暨市| 扬中市| 门头沟区| 库伦旗| 阿拉善左旗| 绥芬河市| 高安市| 常州市| 图木舒克市| 岳普湖县| 清水县| 夏津县|