這篇文章主要講解了“Solidity合約結(jié)構(gòu)是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Solidity合約結(jié)構(gòu)是什么”吧!
我們提供的服務(wù)有:做網(wǎng)站、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、臨潭ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的臨潭網(wǎng)站制作公司
Solidity合約結(jié)構(gòu)主要包括:狀態(tài)變量、局部變量、構(gòu)造函數(shù)、析構(gòu)函數(shù)
在以太坊區(qū)塊鏈上運行的程序,通常稱為智能合約(Smart Contract),所以通常會把寫區(qū)塊鏈程序改稱、寫智能合約。
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等等版本可以用來修復(fù)前面的solidity存在的一些bug。
contract是合約聲明的關(guān)鍵字,Counter是合約名字,contract Counter就是聲明一 個Counter合約。
contract相當(dāng)于其他語言中的class,Counter相當(dāng)于類名,contract Counter相當(dāng) 于 class Counter 。
uint count = 0;
address owner;
count 和 owner就是狀態(tài)變量,合約中的狀態(tài)變量相當(dāng)于類中的屬性變量。
constructor () public 也可寫成 function Counter(),函數(shù)名和合約名相同時,此函數(shù)是合約的構(gòu)造函數(shù),當(dāng)合約被部署時, 會先調(diào)用構(gòu)造函數(shù)對相關(guān)數(shù)據(jù)進行初始化處理,構(gòu)造函數(shù)在整個生命周期內(nèi)只會在部署時執(zhí)行一次。
function increment() public
function getCount() constant returns (uint)
以上兩個都是Counter合約的成員函數(shù),成員函數(shù)在iOS里面叫做方法、行為,合約實例可以調(diào)用成員函數(shù) 處理相關(guān)操作。當(dāng)調(diào)用increments函數(shù)時,會讓狀態(tài)變量count增加step。當(dāng)調(diào)用getCount()時會得到狀態(tài)變量count的值。
function increment() public { uint step = 10; if (owner == msg.sender) { count = count + step; } }
increment)方法中聲明的step就是局部變量。局部變量只在離它最近的{}內(nèi)容使用。
析構(gòu)函數(shù)和構(gòu)造函數(shù)對應(yīng),構(gòu)造函數(shù)是初始化數(shù)據(jù),而析構(gòu)函數(shù)是銷毀數(shù)據(jù)。在counter合約 中,當(dāng)我們手動調(diào)用kill函數(shù)時,就會調(diào)用selfdestruct(owner)銷毀當(dāng)前合約。
感謝各位的閱讀,以上就是“Solidity合約結(jié)構(gòu)是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Solidity合約結(jié)構(gòu)是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!