solidity智慧型合約重要特性

2021-10-25 03:29:11 字數 1773 閱讀 1538

solidity智慧型合約的一些重要特性,如變長陣列中的storage和memory變數,storage和memory的儲存位置以及字串陣列string使用。

區塊鏈開發

以太坊 | fabric | bcos | 密碼技術 | 共識演算法 | 位元幣 | 其他鏈

string,bytes

對於變長陣列,在初始化分配空間前不可使用,可以通過new關鍵字來初始化乙個陣列。它們不能在使用new關鍵字初始化前使用下標方式訪問。

storage型別的動態陣列有乙個length屬性,表示當前的陣列長度。對於storage的變長陣列,可以通過給length賦值調整陣列長度。可以通過兩種方式改變陣列長度,index++及push方法。

contract test

function test2() public returns(uint, string)

}

而memory型別的動態陣列,不支援修改length屬性來調整陣列大小。一旦new完,大小不可改變。

contract test1

function assign(s s) internal

function change(int changei) public returns(int)

}

contract test2

//狀態變數,合約內宣告的公有變數,預設是storage的

s s;

function convertstorage(s storage s) internal

function call() returns (string)

}

contract test3

//預設是storage的

s s;

function memorytostate(s memory tmp) internal

function call() returns(string)

}

contract test4

function memorytolocal(s s) internal

}

contract test5

s s = s("storage", 1);

function storagetomemory(s storage x) internal

function call() returns (string)

}

memory之間是引用傳遞,並不會拷貝資料。乙個memory的引用型別賦值給另乙個memory的引用,不會建立另乙個新的拷貝。

contract test6

//預設引數是memory

function memorytomemory(s s) internal

function call() returns (string)

}

function getentry(string fields, entry entry) internal view returns (string) 

return values;

}

function getentry(string fields, entry entry) internal view returns (string) 

return values;

}

solidity智慧型合約程式設計基礎

基礎語法 一 1 函式定義 function 函式名 引數型別 引數1,引數型別 引數2 訪問許可權 讀取資料型別函式 returns 返回資料型別 訪問許可權 public private 一般private許可權的話,引數命名前面加乙個 例如 name 讀取資料型別函式 view函式 唯讀且不可...

solidity 智慧型合約之間的呼叫

在智慧型合約的編譯過程中,有兩種情況 呼叫者和被呼叫者在乙個sol檔案中和分別在不同的檔案中。在下面的智慧型合約中,demo1和demo在同乙個檔案中,可進行同時編譯,然後逐個發布。pragma solidity 0.5.10 contract demo1 contract demo2 當發布完成,...

以太坊solidity智慧型合約設計模式

設計模式是許多開發場景中的首選解決方案,本文將介紹五種經典的智慧型合約設計模式並給出 以太坊solidity實現 自毀合約 工廠合約 名稱登錄檔 對映表迭代器和提款模式。合約自毀模式用於終止乙個合約,這意味著將從區塊鏈上永久刪除這個合約。一旦被銷毀,就不可能呼叫合約的功能,也不會在賬本中記錄交易。現...