91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

solidity智能合約[41]-structdeep

發布時間:2020-07-01 22:38:45 來源:網絡 閱讀:266 作者:jonson_jackson 欄目:開發技術

結構體中的mapping

###定義時,不用初始化mapping
1、結構體中的變量,在定義的時候是不能缺省的,但是結構體中的mapping映射除外。
2、在memory中的結構體變量s是不能夠操作其中mapping映射。這是由于mapping映射只能夠存儲在storage空間中

1
2
3
4
5
6
7
struct student{
      uint grade;
      string name;
      mapping(uint=>string) map;
  }
student memory s = student(100,"jonson"); //初始化不用管mapping
// s.map[2] = "alice";錯誤,mapping映射只能夠存儲在storage空間中

3、要想操作結構體中的mapping映射,那么必須要將結構體定義為狀態變量。
如下面的例子中,定義了狀態變量 student stu。因此可以操作其mapping映射。

下例中的變量guy在棧中,對于guy的操作視同于對于狀態變量stu的操作。

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
contract structdeep{


   struct student{
       uint grade;
       string name;
       mapping(uint=>string) map;
   }

   student stu;


   function init() public view returns(string){
       student memory s = student(100,"jonson");

       //將memory中 結構體s的值賦值給狀態變量中的stu。
       stu =  s;
       //操作mapping映射
      stu.map[2] = "alice";

     //引用
     student storage guy =  stu;
     guy.map[2] = "bob";


     return stu.map[2];

   }

帶參數結構體與memory

函數參數為結構體時,由于函數參數是在memory的空間中,因此默認時memory屬性。必須要用memroy來接受,不能使用storage類型來接受。

1
2
3
4
5
6
7
8
9

struct student{
   uint grade;
   string name;
}

function structParam(student s) internal{
   student memory guy =  s;
}

錯誤寫法:

1
2
3
4
5
6
7
8
9

struct student{
   uint grade;
   string name;
}

function structParam(student s) internal{
   student  guy =  s;
}

錯誤寫法2:

1
2
3
4
5
6
7
8
struct student{
   uint grade;
   string name;
}

function structParam(student s) internal{
   student storage guy =  s;
}

函數參數為結構體引用

如果希望使用到storage來接受,那么需要強制為參數加上storage屬性。這時,傳遞的參數必須是狀態變量。

1
2
3
4
5
6
7
8
9
10
function structParam2(student storage s) internal{
   student storage guy =  s;
   guy.grade = 1000;
}

function call() public returns(uint){

   structParam2(stu);

   return stu.grade;
  • 本文鏈接: https://dreamerjonson.com/2018/11/23/solidity-41-structdeep/

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

solidity智能合約[41]-structdeep

向AI問一下細節

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

AI

拉萨市| 阆中市| 阳曲县| 宁乡县| 德江县| 汽车| 河间市| 三都| 乌拉特后旗| 恩平市| 江阴市| 昌邑市| 眉山市| 泉州市| 武汉市| 芦溪县| 阜平县| 泸溪县| 攀枝花市| 宽甸| 饶河县| 北票市| 邛崃市| 台湾省| 石家庄市| 哈尔滨市| 自贡市| 盐源县| 安化县| 图木舒克市| 临清市| 栾川县| 长乐市| 苏尼特左旗| 达日县| 永胜县| 富阳市| 视频| 黔东| 石泉县| 双鸭山市|