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

溫馨提示×

溫馨提示×

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

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

solidity智能合約[42]-memory與storage相互轉換

發布時間:2020-06-11 00:47:34 來源:網絡 閱讀:584 作者:jonson_jackson 欄目:開發技術

memory 賦值 狀態變量

下面的例子說明了memory賦值給storage的情況。在test函數中,memory空間的變量s復制給了狀態變量stu。為值的拷貝問題。并且由于這兩個空間互不影響。因此修改變量的值不會影響到另一個變量的值。
當調用call函數時,返回100,"jonson"。s的修改不會影響變量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
pragma solidity ^0.4.23;
contract MemoryTostorage{

     struct student{
       uint grade;
       string name;
   }

   student stu;

   function test(student  memory s) internal{

       stu = s;
       s.name = "alice";
   }


   function call() returns(uint,string){

       student memory guy = student(100,"jackson");
       test(guy);
       return (stu.grade,stu.name);
   }
}

storage 賦值 memory

如下例,說明了storage復制給結構體 memory變量的情況。在test函數中,其實質是將s引用的狀態變量的值賦值給了guy。
變量guy不是存儲的引用,而是一個結構體空間。當調用call函數時,返回100,"jonson"。對于guy的修改不會影響到stu的修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
contract storageToMemory{

     struct student{
       uint grade;
       string name;
   }

   student stu = student(100,"jackson");

function test(student  storage s) internal{

   student memory guy = s;
   guy.grade = 50;
}

function call() public returns(uint,string){

   test(stu);

   return (stu.grade,stu.name);
}

memory 轉 memory

memory與memory之間的相互轉換是值傳遞。
在下面的例子中,當調用call函數時,在memory中開辟了結構體的三個實例空間a、b、c。賦值為值的拷貝。他們之間互不影響。
修改一個變量不會影響其他變量的值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pragma solidity ^0.4.23;


contract memoryTomemory{
   struct student{
       uint grade;
       string name;
   }

   function test(student memory b) internal{
       student memory c = b;
       c.name = "jonson";
   }

   function call() returns(string){
       student memory a =  student(100,"olaya");
       test(a);
       return a.name;
   }
}
  • 本文鏈接: https://dreamerjonson.com/2018/11/23/solidity-42-memory-storage/

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

solidity智能合約[42]-memory與storage相互轉換

向AI問一下細節

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

AI

凤阳县| 诸城市| 留坝县| 庆安县| 徐州市| 云和县| 敦化市| 镇赉县| 轮台县| 襄樊市| 朝阳市| 荥经县| 分宜县| 洛隆县| 宁阳县| 岳池县| 尚志市| 潜江市| 伊宁县| 房产| 延寿县| 霍山县| 来凤县| 怀化市| 什邡市| 若尔盖县| 亚东县| 西充县| 乐陵市| 七台河市| 合肥市| 延庆县| 武清区| 蒙自县| 阳朔县| 嵊泗县| 额敏县| 桃江县| 大厂| 修武县| 通州区|