solidity智慧合約[42]-memory與storage相互轉換
阿新 • • 發佈:2018-11-26
memory 賦值 狀態變數
下面的例子說明了memory賦值給storage的情況。在test函式中,memory空間的變數s複製給了狀態變數stu。為值的拷貝問題。並且由於這兩個空間互不影響。因此修改變數的值不會影響到另一個變數的值。
當呼叫call函式時,返回100,"jonson"
。s的修改不會影響變數stu。
1 |
pragma solidity ^0.4.23; |
storage 賦值 memory
如下例,說明了storage複製給結構體 memory變數的情況。在test函式中,其實質是將s引用的狀態變數的值賦值給了guy。
變數guy不是儲存的引用,而是一個結構體空間。當呼叫call函式時,返回100,"jonson"
。對於guy的修改不會影響到stu的修改。
1 |
contract storageToMemory{ |
memory 轉 memory
memory與memory之間的相互轉換是值傳遞。
在下面的例子中,當呼叫call函式時,在memory中開闢了結構體的三個例項空間a、b、c。賦值為值的拷貝。他們之間互不影響。
修改一個變數不會影響其他變數的值。
1 |
pragma solidity ^0.4.23; |
本文連結: https://dreamerjonson.com/2018/11/23/solidity-42-memory-storage/
版權宣告: 本部落格所有文章除特別宣告外,均採用 CC BY 4.0 CN協議 許可協議。轉載請註明出處!