這篇文章主要講解了“Solidity合約結構是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Solidity合約結構是什么”吧!
Solidity合約結構主要包括:狀態變量、局部變量、構造函數、析構函數
在以太坊區塊鏈上運行的程序,通常稱為智能合約(Smart Contract),所以通常會把寫區塊鏈程序改稱、寫智能合約。
pragma solidity ^0.4.23; contract Counter { uint count = 0; address owner; constructor () public { owner = msg.sender; } function increment() public { uint step = 10; if(owner == msg.sender) { count = count + step; } } function getCount() constant public returns (uint) { return count; } function kill() public { if (owner == msg.sender) { selfdestruct(owner); } } }
pragma solidity代表solidity版本聲明,0.4.23代表solidity版本,^表示向上兼容,^0.4.23表示solidity的版本在0.4.23 - 0.5.0(不包含0.5.0)的版本都可以對本合約代碼進行編譯,0.4.24、0.4.25等等版本可以用來修復前面的solidity存在的一些bug。
contract是合約聲明的關鍵字,Counter是合約名字,contract Counter就是聲明一 個Counter合約。
contract相當于其他語言中的class,Counter相當于類名,contract Counter相當 于 class Counter 。
uint count = 0;
address owner;
count 和 owner就是狀態變量,合約中的狀態變量相當于類中的屬性變量。
constructor () public 也可寫成 function Counter(),函數名和合約名相同時,此函數是合約的構造函數,當合約被部署時, 會先調用構造函數對相關數據進行初始化處理,構造函數在整個生命周期內只會在部署時執行一次。
function increment() public
function getCount() constant returns (uint)
以上兩個都是Counter合約的成員函數,成員函數在iOS里面叫做方法、行為,合約實例可以調用成員函數 處理相關操作。當調用increments函數時,會讓狀態變量count增加step。當調用getCount()時會得到狀態變量count的值。
function increment() public { uint step = 10; if (owner == msg.sender) { count = count + step; } }
increment)方法中聲明的step就是局部變量。局部變量只在離它最近的{}內容使用。
析構函數和構造函數對應,構造函數是初始化數據,而析構函數是銷毀數據。在counter合約 中,當我們手動調用kill函數時,就會調用selfdestruct(owner)銷毀當前合約。
感謝各位的閱讀,以上就是“Solidity合約結構是什么”的內容了,經過本文的學習后,相信大家對Solidity合約結構是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。