溫馨提示×

溫馨提示×

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

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

Solidity合約結構是什么

發布時間:2021-12-07 15:52:51 來源:億速云 閱讀:241 作者:iii 欄目:互聯網科技

這篇文章主要講解了“Solidity合約結構是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Solidity合約結構是什么”吧!

Solidity合約結構主要包括:狀態變量、局部變量、構造函數、析構函數

1、什么是智能合約?

        在以太坊區塊鏈上運行的程序,通常稱為智能合約(Smart Contract),所以通常會把寫區塊鏈程序改稱、寫智能合約。

2、一個完整的合約示例

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);
       }
 	}
}

3、版本聲明

        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。

4、合約聲明

contract是合約聲明的關鍵字,Counter是合約名字,contract Counter就是聲明一 個Counter合約。

contract相當于其他語言中的class,Counter相當于類名,contract Counter相當 于 class Counter 。

5、狀態變量

uint count = 0;

address owner;

count 和 owner就是狀態變量,合約中的狀態變量相當于類中的屬性變量。

6、構造函數(Contructor)

constructor () public 也可寫成 function Counter(),函數名和合約名相同時,此函數是合約的構造函數,當合約被部署時, 會先調用構造函數對相關數據進行初始化處理,構造函數在整個生命周期內只會在部署時執行一次。

7、成員函數

        function increment() public

        function getCount() constant returns (uint)

        以上兩個都是Counter合約的成員函數,成員函數在iOS里面叫做方法、行為,合約實例可以調用成員函數 處理相關操作。當調用increments函數時,會讓狀態變量count增加step。當調用getCount()時會得到狀態變量count的值。

8、本地變量

function increment() public { 
    uint step = 10; 
    if (owner == msg.sender) { 
        count = count + step;
    }
}

increment)方法中聲明的step就是局部變量。局部變量只在離它最近的{}內容使用。

9、析構函數(selfdestruct)

        析構函數和構造函數對應,構造函數是初始化數據,而析構函數是銷毀數據。在counter合約 中,當我們手動調用kill函數時,就會調用selfdestruct(owner)銷毀當前合約。

感謝各位的閱讀,以上就是“Solidity合約結構是什么”的內容了,經過本文的學習后,相信大家對Solidity合約結構是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女